HTTP 요청은 프론트엔드(클라이언트) 에서 백엔드(서버)에 일(데이터 처리)을 시작하게 하기 위해 보내는 메세지다.
이 메세지의 구조는 크게 세 부분으로 구성되어있다.
요청의 첫번째 줄에 해당한다. 이 시작 줄도 세 부분으로 구성되어있다.
HTTP Method : 해당 요청이 의도한 액션을 정의하는 부분. 주로 GET, POST, PUT, PATCH, DELETE가 많이 쓰임
Request target : 해당 request가 전송되는 url 목적지
HTTP Version: 말 그대로 사용되는 HTTP 버전을 뜻한다. 주로 1.1 버전이 널리 쓰임
- GET /login HTTP/1.1
의미: GET 메소드로 /login 에 HTTP 1.1 버전으로 요청
해당 요청에 대한 추가 정보(메타 데이터)를 담고있는 부분이다.
Headers : {
Host : 요청을 보내는 주소.
웹사이트의 기본 주소가 된다 (ex. www.google.com)
User-Agent : 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, explorer)
Content-Type : 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
Content-Length : body 내용의 길이
Authorization : 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
}
해당 요청의 실제 내용.
**ex) 로그인 시에 서버에 보낼 요청의 내용**
Body: {
"user_email": "mail@gmail.com"
"user_password": "password"
}
```
HTTP 규약에 따른 응답의 구조도 크게 세 부분으로 구성되어있다.
응답의 상태 줄이다. 응답은 요청에 대한 처리상태를 클라이언트에게 알려주면서 내용을 시작한다.
HTTP Version: 요청의 HTTP버전과 동일
Status Code: 응답 메세지의 상태 코드
Status Text: 응답 메세지의 상태를 간략하게 설명해주는 텍스트
- HTTP/1.1 200 SUCCESS
의미: HTTP 1.1 버전으로 응답하고 정상적으로 처리
요청의 헤더와 동일하다. 응답의 추가 정보(메타 데이터)를 담고있는 부분이다. 요청하는 브라우저의 정보가 담긴 User-Agent 대신 Server 헤더가 사용된다.
요청의 Body와 동일하다.