CS
[CS] HTTP의 개념과 구조
오두기밥
2022. 5. 29. 18:05
HTTP란
- HyperText Transfer Protocol의 약자
- 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 통신 규약
- 서버 간 네트워크 통신 시 어떠한 형식으로 통신할지에 대해 정해둔 규약
HTTP 메세지 기본 구조
1) 시작라인
요청
- HTTP Method : ( GET, POST, PUT, PATCH, DELETE )
- Request Target : 요청 대상의 URL을 명시
- HTTP Version : HTTP 버전으로 현재까지는 대부분이 HTTP/1.1이고 HTTP/2, HTTP/3까지 있다.
응답
- Status Code
- 응답 코드
- 1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
- 2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
- 3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
- 4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
- 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.
- 응답 코드
- Status text
- 응답 상태
2) 헤더
요청
- Host : 호스트 URL
- User-Agent : 클라이언트 정보
- Accept : 서버에서 해당 타입에 데이터를 요청하는 헤더
- Authorization : JWT 같은 인증 토큰을 서버로 보낼 때 사용하는 헤더
응답
- Date : 응답 일시
- Content-Type : 응답 데이터의 타입
- Cache-Control : 캐시용 헤더
3) 공백 라인
헤더와 본문을 구분하는 빈 줄 공백 라인은 CRLF라고 하며 필수 사항
CR LF : 텍스트 파일에서 줄 바꿈을 표시하는 데 사용할 수 있는 제어 문자 또는 바이트 코드
CRLF: https://developer.mozilla.org/en-US/docs/Glossary/CRLF
4) 메시지 바디
- 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함한다.
- 요청과 응답의 유형에 따라 선택적으로 사용
※ 시작 라인과 헤더들을 묶어 요청이나 응답의 헤드(head)라고 말하며 body는 payload라고 말한다.