HTTP는 HyperText Transfer Protocol의 약자로 단어 하나하나를 풀어보면
HTTP란?
웹에서 이루어지는 모든 데이터 교환의 기초이며, HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.
간단하다.
HTTP는 사람이 읽을 수 있게 간단하게 고안되었다. 심지어 HTTP/2가 다소 더 복잡해졌지만 여전히 HTTP 메세지를 프레임별로 캡슐화하여 간결함을 유지하였다.
HTTP 메시지
Request/Response
HTTP메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다. 두가지의 메시지 타입이 있는데, 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔하는 메시지가 Request(요청)과 그 요청에 대한 서버의 답인 Response(응답)이 있다.
HTTP 메시지 요청 코드
요청 메시지는
1. 요청 내용
보기) GET /images/logo.gif HTTP/1.1
2. 헤더
보기) Accept-Language: en
3. 빈 줄 (empty line)
4. 기타 메시지를 포함하여 표시
로 구성되며 대표적 요청 코드는 다음과 같다.
HTTP 메시지 응답 코드
응답 메시지는
1. 상태표시 행(status line): 상태코드(status code)와 reason message를 포함한다.
(예. HTTP/1.1 200 OK. 클라이언트의 요청이 성공적으로 전달되었음을 표시)
2. 응답 헤더필드 (예.Content-Type: text/html)
3. 빈 줄 (empty line)
4. 기타 메시지
로 구성되며 대표적 응답 코드는 다음과 같다.
HTTP 메시지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 되어 있다. Request/Response 구조는 비슷하며 아래와 같이 구성되어있다.