- HTTP
- Hyper Text Transfer Protocol
- 하이퍼텍스트 문서를 교환하기 위해 만들어진 protocol(통신 규약)
- 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 통신 구조라고 보면 된다.
- 프론트와 백, 프론트 서버와 클라이언트간의 통신
- HTTP는 TCP/IP 기반
- HTTP 통신 방식
- 기본적으로 요청/응답(request/response) 구조
- 요청이 오면 그에 응답을 할 뿐, 여러 요청/응답끼리 연결되어있지 않다.
- 클라이언트가 요청을 보내고 응답을 받은 후, 조금 있다 다시 요청을 보낼 때, 전에 보낸 요청/응답이 저장되지 않음
- HTTP Request 메세지는 3부분으로 구성
- status line
request의 첫 라인(method,request target, HTTP Version으로 구성)
- headers
해당 request에 대한 추가 정보를 담고 있는 부분
- host : 요청이 전송되는 타겟의 host url:
- User-Agent : 요청을 보내는 클라이언트의 대한 정보: 예를들어 웹브라우저에 대한 정보.
- Accept : 해당 요청이 받을 수 있는 응답 타입
- Connection : 해당 요청이 끝난 후에 클라이언트와 서버가 계속해서 네트워크 커넥션을 유지할 것인지 아니면 끊을 것인지에 대해 지시하는 부분
- Content-Type : 해당 요청이 보내는 메세지 바디의 타입, 예를 들어 JSON을 보내면 application/json
- Content-Length : 메세지 body의 길이
- body
해당 request의 실제 메시지/내용
- HTTP Response 구조
- Response도 Request와 마찬가지로 크게 3부분으로 구성
- Status line
- Response의 상태를 간략하게 나타내주는 부분
- HTTP 버젼, Status code(응답 상태를 나타내는 숫자로 되어 있는 코드), Status text(응답 상태를 간략하게 설명해주는 부분)
- Headers
- Response의 headers와 동일하다.
- 다만 response에서만 사용되는 header 값들이 있다.
- Body
- Response와 body와 일반적으로 동일
- Request와 마찬가지로 모든 response가 body가 있지는 않다. 데이터를 전송할 필요가 없을경우 body가 비어있게 된다.
- 자주 쓰이는 HTTP Methods
- GET
- 이름 그대로 어떠한 데이터를 서버로부터 받아올때 주로 사용하는 메서드
- 데이터 생성/수정/삭제 없이 받아오기만 할때 사용
- 가장 간단하고 많이 사용되는 HTTP Method
- 언급한대로 주로 데이터를 받아올때 사용되기 때문에 request에 body를 안 보내는 경우가 많다.
- POST
- 데이터를 생성/수정.삭제 할 때 주로 사용되는 메서드
- 데이터를 생성 및 수정할 때 많이 사용하기 때문에 대부분의 경우 request body가 포함되서 보내진다.