CS/Network

HTTP/ HTTPS

간지나제 2021. 4. 27. 08:27

1. HTTP란?

HTTP(Hyper Text Transfer Protocol)는 인터넷에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다.

[ HTTP의 구조 ]
HTTP는 TCP/IP Protocol model에서 Application level의 프로토콜로 TCP/IP 위에서 작동한다. 상태를 가지고 있지 않는 *Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.

* Stateless 프로토콜 : 컴퓨팅에서 무상태 프로토콜은 어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜

HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기에 비밀번호와 같은 정보를 제 3자가 조회할 수 있었다. 이를 해결하기 위해 HTTPS가 등장하게 되었다.

2. HTTPS란?

HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP에 데이터 암호화가 추가된 프로토콜이다. (예전에는 SSL 프로토콜을 이용하였으나 현재는 TLS가 표준으로 SSL은 사용하지 않는다.)

대략적인 원리를 살펴보자.
HTTPS의 암호와 원리는 공개키 암호화 방식이다.
암호화, 복호화 시킬 수 있는 서로 다른 키 2개가 존재하는데,
1번 키로 암호화하면 반드시 2번 키로 복호화할 수 있고
2번 키로 암호화하면 1번키로만 복호활 수 있는 룰이 있다.

  1. 그 중 하나의 키는 공개키(1번 키)로 만들어서 공개키 저장소(CA, Certificate Authority)에 등록해놓는다.
  2. 서버는 개인키(2번 키)를 소유하고 있는 상태이다.
  3. 1번키로 암호화된 HTTP 요청, 즉 HTTPS 프로토콜을 사용한 요청이 온다면 서버는 개인키(2번 키)를 이용하여 1번 키로 암호화된 문장을 해독하게 된다.
  4. 서버는 요청을 이해하고 요청에 맞는 응답을 개인키(2번 키)로 암호화해서 클라이언트에 보내준다.
  5. 클라이언트는 공개키(1번 키)를 이용해서 암호화된 응답을 해독하고 사용한다.

https://mangkyu.tistory.com/98
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
https://jeong-pro.tistory.com/89
https://velog.io/@bclef25/http%EC%99%80-https%EC%9D%98-%EC%B0%A8%EC%9D%B4

'CS > Network' 카테고리의 다른 글

URI / URL / URN  (0) 2022.08.10
HTTP Status Code  (0) 2021.06.10
3way handshake & 4way handshake  (2) 2021.06.09