1. HTTP 정의
HTTP(Hypertext Transfer Protocol)는 웹상에서 데이터를 주고 받기 위한 서버(Server)/클라이언트(Client) 모델을 따르는 프로토콜(Protocol)
애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동한다.
- HTTP는 어떤 종류의 데이터든지 전송할 수 있도록 설계
- HTTP로 보낼 수 있는 데이터
- HTML문서
- 하이퍼텍스트(Hypertext)기반으로 데이터를 전송하겠다(Transfer)는 의미
2. HTTP 작동 방식
-
HTTP는 서버(Server)/클라이언트(Client) 모델을 따른다.
-
클라이언트에서 요청(Request)를 보내면 서버는 요청을 처리해서 응답(Response)
-
웹서버는 보통 표준포트인 80번 포트로 서비스
3. Connectionless & Stateless
- HTTP는 Connectionless 방식으로 작동
- 서버 연결 시, 요청(Request) 후 응답(Response)을 받으면 연결 해제
- HTTP는 상태를 기억하지 않음 = Stateless)
- 기본적으로 자원 하나에 대해 하나의 연결을 함
3-1. 장점
- 불특정 다수를 대상으로 서비스 하기에 적합한 방식
- 수많은 사람이 웹 서비스를 사용하더라도 접속유지는 최소한으로 할 수 있기 때문에, 더 많은 유저의 요청 가능
3-2. 단점
- 응답 즉시 연결을 종료 하기 때문에, 클라이언트의 이전 상태를 알 수 없음 (Stateless)
- Stateless : Connectionless로 부터 파생되는 특징
- 클라이언트가 과거에 로그인을 성공하더라도 로그 정보를 유지할 수가 없음
(HTTP는 Cookie를 이용해서 이 문제를 해결)
- Cookie : 클라이언트와 서버의 상태 정보를 담고 있는 정보조각