CS

HTTP와 HTTPS

서머스 2022. 10. 8. 19:10

 

HTTP

- HyperText Transfer Protocol

- 웹 페이지를 보내고 받기 위한 인터넷 기반 프로토콜

- 애플리케이션 레벨의 프로토콜로, TCP/IP 위에서 작동한다.

- 80번 포트를 사용한다.

 

HTTP 요청 메서드(HTTP 동사)

  • GET 메서드 -  특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
  • HEAD 메서드 - GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.
  • POST 메서드 - 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다.
  • PUT 메서드 - 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.
  • DELETE 메서드 - 특정 리소스를 삭제합니다.
  • CONNECT 메서드 - 목적 리소스로 식별되는 서버로의 터널을 맺습니다.
  • OPTIONS 메서드 - 목적 리소스의 통신을 설정하는 데 쓰입니다.
  • TRACE 메서드 -  목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다.
  • PATCH 메서드는 리소스의 부분만을 수정하는 데 쓰입니다.

 

 

HTTPS

- HyperText Transfer Protocol

- HTTPS는 HTTP 요청/응답을 암호화하기 위해 TLS(SSL)을 사용한다.

- 443번 포트를 사용한다.

 

- 두 가지의 암호화 방식을 사용한다.

대칭키 암호화 - 키카 노출되면 매우 위험함
- 연산 속도가 빠름
비대칭키 암호화 - 키가 노출되어도 비교적 안전
- 연산 속도가 느림
- 공개키와 개인키 한 쌍으로 이루어져 있다. 이 두개로 복호화/암호화를 진행한다.

- 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용되고, 이후에 데이터를 교환할 때 빠른 속도를 위해 대칭키가 사용된다.

 

HTTPS 연결 과정(Hand-Shaking)

  1. 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
  2. 서버는 공개키(엄밀히는 인증서)를 브라우저에게 넘겨줌
  3. 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함
  4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함
  5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함

 

 

 

-참고-

https://www.venafi.com/blog/what-are-differences-between-http-https-0

 

What Are the Differences Between HTTP & HTTPS? | Venafi

September 10, 2022 | Anastasios Arampatzis Venafi is a strong proponent of and is always encouraging people to move to HTTPS for several reasons such as performance benefits, security, and even SEO advantages. While we constantly use the acronyms HTTP and

www.venafi.com

https://mangkyu.tistory.com/98

 

[Web] HTTP와 HTTPS의 개념 및 차이점

1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환..

mangkyu.tistory.com

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org