HTTP ( Hyper Text Transfer Protocol ) 란 ?
“하이퍼텍스트(HyperText)를 전송(Transfer)하기 위해 사용되는 통신 규약(Protocol)”.
HTTP는 80번 포트를 사용하고 있으며 HTTP는 80번 포트에서 요청을 기다리고 클라이언트는 80번 포트로 요청을 보냅니다.
HTTP의 특징
Stateless ( 무상태성 ) 을 가져, 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식입니다.
클라이언트와 첫번째 통신에서 데이터를 주고 받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다는 특징을 가지고 있습니다.
정보를 일반 텍스트로 보내기 때문에 "안전하지 않은" 것으로 간주되기 때문에 사이버 공간을 통해 이동하는 데이터를 누구나 가로챌 수 있습니다.
그렇기 때문에 이러한 단점을 보완하고자 HTTP에 S(Secure Socket)가 추가된 HTTPS가 도입되었습니다.
HTTPS ( Hyper Text Transfer Protocol Secure ) 란 ?
HTTP에 SSL 데이터 암호화가 추가된 프로토콜입니다.
HTTP 와 SSL이 결합된 통신 프로토콜
HTTPS는 HTTP와 다르게 443 포트를 사용하며, 네트워크 상에서 제 3자가 정보를 볼 수 없도록 암호화를 지원합니다.
암호화를 지원하기 때문에 민감한 정보를 주고받을 때에 이것이 도난당하는 것을 방지할 수 있습니다.
HTTPS의 특징
HTTPS를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화됩니다.
HTTPS는 페이지를 암호화한 키가 그 페이지를 보는 특정 사용자에게만 알려지도록 합니다.
HTTPS는 SSL을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작합니다.
이러한 SSL 방식을 적용하려면 인증서를 발급받아 서버에 적용시켜야 하는데
인증서를 발급하는 기관을 CA(Certificate Authority)라고 부릅니다.
인증서는 사용자가 접속한 서버가 우리가 의도한 서버가 맞는지를 보장하는 역할을 하며
공인인증기관의 경우 웹 브라우저는 미리 CA 리스트와 함께 각 CA의 공개키를 알고 있습니다.
- SSL 이란 ? 아래의 포스팅을 참고하시면 이해가 되실 겁니다.
CA 인증서 발급 과정
- 인터넷 사이트(서버)는 공개키와 개인키를 만들고, 신뢰할 수 있는 인증 기관(CA)에 자신의 정보와 공개키를 관리해달라고 계약하고 (경우에 따라) 돈을 지불한다.
- 이 때, 계약을 완료한 인증 기관은 기관만의 공개키와 개인키가 있다.
인증 기관은 사이트가 제출된 데이터를 검증하고, 인증 기관의 개인키로 사이트에서 제출한 정보를 암호화해서 인증서를 만들어 제공한다.
( 이제 사이트는 인증서를 가지게 되었다. ) - 인증 기관은 웹 브라우저에게 자신의 공개키를 제공한다
HTTPS 동작 과정
- 사용자가 사이트에 접속하면 서버는 자신의 인증서를 웹 브라우저(클라이언트)에게 보낸다.
예를 들어, 웹 브라우저가 index.html 파일을 달라고 요청했다면, 서버의 정보를 인증 기관의 개인키로 암호화한 인증서를 받게 되는 것이다. - 웹 브라우저는 인증기관의 공개키로 암호화된 인증서를 해독하여 검증한다. 그러면 사이트의 정보와 서버의 공개키를 알 수 있게 된다.
- 이렇게 얻은 서버의 공개키로 대칭키를 암호화해서 다시 사이트에 보낸다.
- 사이트는 개인키로 암호문을 해독하여 대칭키를 얻게 되고, 이제 대칭키로 데이터를 주고받을 수 있게 된다.
- 세션이 종료되면 대칭키는 폐기된다.
.
'◼ CS 기초 지식 > [네트워크]' 카테고리의 다른 글
Port ( 포트 ) 란 무엇인가 ? 포트에 대해 알아보자. (1) | 2022.09.23 |
---|---|
SSL 이란 ? TLS 이란 ? (0) | 2022.09.22 |
URI와 URL 비슷해보이는데 차이점이 뭘까? ( 완벽 정리 ) (2) | 2022.09.22 |
TCP와 UDP란? 왜 사용하는지 알아보자 (0) | 2022.09.21 |
[네트워크] Class란 ? CIDR 란 ? 차이점 및 개념을 쉽게 이해해보자 (feat.서브넷팅, 슈퍼넷팅) (3) | 2022.09.20 |