
HTTP (Hyper Text Transfer Protocol)
- 웹 서버와 클라이언트 간의 문서를 교환하기 위한 통신 규약
- 신뢰성 있는 데이터 보장 → TCP/IP 기반 응용 프로토콜
- 연결 상태 유지 X → 비연결성
- 요청/응답(Request, Response) 방식으로 동작
특징
- TCP 기반의 통신 방식
- TCP (Transmission Control Protocol)
- 서버의 url에서 호스트명을 추출하여 ip로 변환 및 포트 번호 추출
- TCP connection
- 요청 및 응답
- 브라우저에 전달
- 비연결 지향
- Stateless
- 브라우저를 통해 클라이언트의 요청으로 서버와 접속하여 해당 요청에 대한 응답을 클라이언트에게 전송한 후 연결을 종료 → 사용자 구분이 되지 않음 → 이후 쿠키, 세션 등이 등장하여 해결
- 자원이 적게 드는 장점
- 단방향성
- 클라이언트 요청에 대해 응답하는 방식이기 때문에 서버가 먼저 응답하지 않음
문제점
- HTTP는 평문 통신 → 언제든지 훔쳐볼 수 있음
- 통신 상대를 확인하지 않기에 위장 가능
- 완전성을 증명할 수 없기에 변조가 가능
HTTPS (Hyper Text Transfer Protocol Secure)
- HTTP 통신하는 소켓 부분을 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer)라는 프로토콜로 대체 → 전송계층 과 응용계층 사이
- HTTP는 TCP와 통신했지만, HTTPS에서 HTTP는 SSL과 통신하고 SSL이 TCP와 통신하게 된다.
- 즉, 하나의 레이어를 더 둔 것이다.
- HTTPS의 SSL에서는 대칭키 암호화 방식과 공개키 암호화 방식을 모두 사용