HTTP (Hyper Text Transfer Protocol)
개요
HTTP(Hyper Text Transfer Protocol) 프로토콜은 웹상에서 클라이언트와 서버 간에 통신을 위해 개발된 프로토콜이다.
- 웹의 정식명칙은 World Wide Web 으로 전 세계에 거미줄처럼 연결된 망이라는 의미
- 주로 80/tcp 포트를 사용하며 1991년에 HTTP 초기버전이 발표된 이후 1996년 1.0버전, 1999년 1.1버전이 발표되어 사용되고 있다.
- HTTP 통신은 클라이언트 요청과 서버 응답으로 이루어져 있다.
비연결형(Connectionless) 프로토콜

- HTTP/1.0 버전까지는 클라이언트의 HTTP 요청에 대한 서버의 HTTP 응답 이후에 TCP 연결을 바로 종료하는 구조로 동작한다.
① 연결을 바로 종료하는 이유는 제한된 서버 연결 자원을 이용하여 최대한 많은 클라이언트의 요청을 처리하기 위함이다.
② 서버 입장에서는 통신을 위한 다수의 TCP 연결 설정 및 종료에 대한 부하가 있다.

- HTTP/1.1 버전부터 Connection 헤더에 Keep-Alive 옵션이 추가되었다. 이는 TCP 연결 상태를 웹 서버 설정에 따라 일정시간 지속시키는 옵션으로 한 번의 연결 이후에 요청/응답을 반복할 수 있다.
쿠키(Cookie) 방식

① 쿠키는 개별 클라이언트 상태정보를 HTTP 요청/응답 헤더에 담아서 전달하는 작은 정보/데이터를 말한다.
② 서버에서 "Set-Cookie 응답헤더"를 통해 쿠키를 설정하여 클라이언트로 전달하면 클라이언트는 "Cookie 요청헤더"를 이용해 지속적으로 쿠키를 전달하는 형태로 동작한다.
③ 쿠키는 지속 시간에 따라 영속 쿠키와 세션 쿠키로 구분할 수 있다.
영속 쿠키: 클라이언트에 파일형태로 지속적으로 존재하는 쿠키로 쿠키에 설정된 사이트 요청시마다
cookie 요청 헤더에 쿠키 정보를 담아서 전달한다.
세션 쿠키: 클라이언트 메모리상에 세션이 유지도니는 동안 존재하는 쿠키로 세션이 종료되면 소멸된다
세션(Session) 방식

① 세션은 개별 클라이언트 상태정보를 서버에 저장하는 기술을 말한다.
② 서버는 개별 클라이언트 세션을 식별하기 위해 "세션 ID"를 부여하고 세션 ID는 세션 쿠키를 이용하여 클라이언트와 서버 간에 주고 받는다.
③ 클라이언트 상태정보를 서버에 저장하기 때문에 쿠키 방식에 비해 보안상 안전하다.
HTTP 요청 메시지 구조

주요 요청 메소드

주요 상태 코드
