Http Method : 자원에 대한 행위(수행하고자 하는 동작)를 정의한다.
GET
, POST
, DELETE
, PUT
등
Request Target : HTTP Request가 전송되는 목표 주소(URI)
(ex: /api/v1/articles
, /test.html?query=alibaba
, 쿼리 스트링이 들어간다.)
Http Version
(ex: HTTP/1.1
)
✔ header에는 http request 그 자체에 대한 정보가 담겨 있으며, key:value 형태로 이루어져 있다.
HOST: 요청하려는 서버의 호스트 URL
User-Agent: 요청을 보내는 클라이언트 정보(웹 브라우저에 대한 정보)
Authorization: 인증 토큰을 서버로 보낼 때 쓰이는 header
Origin: 서버로 POST 요청을 보낼 때, 요청이 어느 주소에서 시작되었는지 나타내는 값이다. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS(Cross-Origin Resource Sharing) 에러가 발생한다.
Cookie: key-value값으로 표현된 쿠키
해당 request의 실제 메세지 내용
GET
은 없는 경우가 많다.
POST
요청일 경우, HTML form 데이터가 포함되어 있다.
Http version
Status Code : 특정 http 요청이 성공적으로 완료 되었는지 여부를 나타낸다.
📌 status code 종류:
- 1XX : informational responses
- 2XX : Successful responses
- 3XX : Redirection messages
- 4XX : Client error responses (클라이언트 잘못)
- 5XX : Server error responses (서버 잘못)
OK
)Location : 301, 302 상태 코드일 때만 볼 수 있는 header로, 서버의 응답이 다른 곳에 있다고 알려주면서 해당 위치(URI)를 지정해준다.
Server : 웹 서버의 종류
Referrer-policy : 서버 referrer 정책을 알려주는 값
(ex: origin, no-referrer, unsafe-url)
WWW-Authenticate : 사용자 인증이 필요한 자원을 요구할 시에, 서버가 제공하는 인증 방식
Proxy-Authenticate : 요청한 서버가 proxy 서버인 경우, 유저 인증을 위한 값이다.
요청에 대한 응답 값
데이터를 전송할 필요가 없을 경우, body가 비어있게 된다.
📌 http Request & Response 공통 header
- Cache-Control(공통): 캐시 제어
- Date(공통): 현재 시간
- Accept: 해당 요청이 받을 수 있는 응답 데이터 타입
- Connection(공통): 해당 요청이 끝난 후 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할 지, 끊을 지에 대해 지시하는 부분
❗ HTTP/1.1은 keep-alive로 연결 유지하는 것이 디폴트다.
- Content-type(공통): 해당 요청이 보내는 메세지의 Body 타입
(ex: json이라면application/json
)
- Content-Length(공통): 메세지 body의 길이