HTTP (Hypertext transfer Protocol) 란 HTML 문서와 같은 리소스를 가져올수 있도록 해주는 통신 프로토콜입니다. 이름에는 Hypertext 가 있지만 HTML 문서만 가져올수 있는게 아니라 텍스트, 이미지, 동영상, 스트립트등 다양한것을 주고 받을 수 있습니다.
클라이언트가 보내는 메세지를 요청(requests) 라고 하며, 서버측에서 보내는 메세지를 응답 (reponses) 이라고 합니다.
요청은 다음의 요소들로 구성됩니다:
HTTP 메서드 - 클라이언트가 수행하고자 하는 동작을 의미합니다. GET, POST, OPTIONS, HEADS등이 있습니다. 일반적으로는 GET을 사용해 리소스를 가져오거나, POST를 사용해 데이터를 전송하려하지만 다른 동작을 요구할 때도 있습니다.
가져오려는 리소스의 경로
HTTP 프로토콜의 버전
서버의 대한 추가 정보를 전달하는 선택적 헤더들
POST 와 같은 몇몇 메서드를 위한, 전송된 리소스를 포함하는 응답의 본문과 유사한 본문
응답은 다음 요소들로 구성됩니다.
HTTP 프로토콜의 버전
요청의 성공여부와, 상태코드
상태코드의 짧은 설명을 나타내는 상태메세지
요청 헤더와 유사한 HTTP 헤더들
가져온 리소스를 포함하고있는 바디
상태코드는 모두 세자리로 이루어져있으며, 시작번호를 보고 대충 어떠한 상태인지 파악할 수 있습니다.
1XX : 정보
2XX : 응답 성공
3XX : 리다이렉션
4XX : 클라이언트 에러
5XX : 서버 에러
참고:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/hypertext-transfer-protocol-http/