http
December 15, 2019
HTTP란 HyperText Transfer Protocol
웹상에서 네트워크로 서버끼리 통신을 할때 규정해놓은 통신형식 또는 통신 구조이다
프론트앤드 서버와 클라이언트간의 통신에도 사용되며 백앤드서버와 프론트앤드서버 통신에도 사용된다.
통신방식
HTTP는 기본적으로 요청/응답 (request/response) 구조이다.
-
클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조
-
클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어짐
HTTP는 stateless
-
state(상태)를 저장하지 않는다.
-
요청이 오면 그에 응답을 하고 여러 요청/응답 끼리 연결되어 있지 않다,
-
여러 요청과 응답의 데이터가 필요할때는 쿠키나 세션을 사용한다,
HTTP Request 구조
HTTP request 는 크게 3부분으로 구성된다
start line
HTTP request의 첫라인이며 3부분으로 구성되어있다.
-
HTTP Method : 해당 request가 의도한 action을 정의하는부분이며 GET, POST, PUT, DELETE 등이 있으며 GET과 POST가 주로 쓰인다.
-
Request target : request가 전송되는 목표 url 예를들어 /login
-
HTTP version : 말 그대로 버젼이다 1.0, 1.1 2.0 등이 있다.
해당 request에 대한 추가정보를 담고있는 부분이다.
Key:Value 값으로 되어있고 크게 3부분으로 구성되어있다.
-
Host : 요청이 전송되는 target의 host url -> google.com
-
User-Agent : 요청을 보내는 클라이언트에 대한 정보
-
Accept : 해당 요청이 받을 수 있는 응답 타입.
-
Connection : 해당 요청이 끝난 후 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지할지 지시하는 부분
-
Content-Type : 해당 요청이 보내는 메시지 body의 타입
-
Content-Length : 메시지 body의 길이
Body
해당 request의 실제 메시지 내용이며 Body가 없는 요청도 많다.
HTTP Response 구조
Reponse 도 크게 3부분으로 구성되어있다.
Status line
-
Response의 상태를 나타내주는 부분이다
-
예)HTTP/1.1 404 Not Found
Body
-
Response의 body와 동일하며 모든 respose에 body가 있지는 않다.