All Articles

HTTP

HTTP

HyperText Transfer Protocol
HTML 문서를 교환하기 위해 만들어진 protocol(규약, 통신)
즉, 웹에서 네트워크로 서버끼리 통신을 할때 어떠한 규칙(형식)으로 서로 통신을 할건지 규정해놓은 것
프론트엔드 서버와 클라이언트 간의 통신에 사용된다.
TCP/IP 기반으로 되어있다.

통신 방식

기본적으로 요청(request)과 응답(response) 구조로 되어있다.
클라이언트가 HTTP request를 서버에 전송하면 서버는 HTTP response를 보내주는 구조.
클라이언트와 서버 간 모든 통신은 request와 response로 이뤄져 있다.

HTTP 상태

request를 전송하면 응답만한다.
여러 request, response가 연결되어 있지 않고 각각 독립적이다.
전에 보낸 request, response를 알지 못하기 때문에 여러 request, response의 진행이나 데이터가 필요할 때는 쿠키나
세션을 사용하게 된다.

HTTP request 구조

HTTP request 구조는 크게 3부분으로 구성된다.

status line

status line 구조는 3부분으로 구성된다.

HTTP Method
해당 request가 의도한 action을 정의하는 부분.
HTTP Method는 GET, POST, PUT, DELETE, OPTIONS 등이 있다.

request target
해당 request가 전송될 목표 uri(목적지).

HTTP Version
HTTP Version을 나타낸다.

Headers

해당 request에 대한 추가 정보를 담고 있는 부분.

정보
Host: request가 전송되는 tartget의 host url.
User-Agent: request를 보내는 클라이언트의 대한 정보.(웹 브라우저에 대한 정보)
Accept: 해당 request가 받을 수 있는 response 타입.
Connection: 해당 request가 끝난 후에 클라이언트와 서버가 계속해서 네트워크 통신을 유지 할것인지 끊을것인지에 대한 부분.
Content-Type: 해당 request가 보내는 메세지 body의 타입.(application/json)

Body

해당 request의 실제 메세지 내용.
Body가 없는 request도 있는데 GET request들이 대부분 body가 없는 경우가 많다.

HTTP response 구조

HTTP response 구조는 크게 3부분으로 구성된다.

Status line

response의 상태를 나타내는 부분.
3부분으로 구성되어 있다.

HTTP Version

status code
response 상태를 나타내는 숫자로 되어 있는 코드.

Headers

request headers와 거의 동일한데 response에서만 사용되는 값들을 가지고 있다.

Body

request Body와 일반적으로 동일하다.
모든 response가 Body가 있는건 아니다.
데이터를 response 할 필요가 없을 경우 비어있게 된다.