HTTP 메세지, 메시지 바디?
- 요청하는 측(클라이언트)에서 보내는 HTTP 메세지를 "Request message", 요청을 받는 측에서 보내는 메세지를 "Response message"라고 한다
- HTTP 메세지는 "메세지 헤더"와 "메세지 바디"로 구성되어 있다.
- Message Header
- 리퀘스트 라인 : 리퀘스트 메시지에서 사용하는 method, URI, HTTP 버전 등을 포함
- 상태 라인 : 리퀘스트 라인과 상응하는 개념으로, 상태코드 (200, 404등)과 설명, HTTP 버전을 포함
- 헤더 필드 : 여러 조건과 속성 등을 나타내는 헤더필드가 포함된다. 리퀘스트와 리스폰스에 공존하는 일반헤더필드, 리스폰스헤더필드가 있고 각각 리퀘스트헤더필드, 엔티티헤더필드 총 4종류의 헤더필드가 있다.
- Message Body
- 전달하고자 하는 실제 내용
- 흔히, "HTTP 메세지"를 인터넷 운송 시스템의 "컨테이너" 라고 생각하고, "HTTP 엔티티"는 이에 담기는 "화물"이라고 칭하기도 한다.
HTTP 엔티티?, 엔티티 바디?
HTTP에서 인코딩은?
- 통신을 할떄 데이터를 그대로 보내기 보다, 변환, 압축, 분할등의 과정을 거쳐 효율을 높이는게 유리하다.
- HTTP 통신역시 인코딩을 통해 효율을 높일수 있다. 단, 인코딩 처리를 위한 CPU등의 리소스를 더 소비하게 된다.
멀티파트
- 복수의 파일(이미지, 음성 등)을 첨부타일을 붙여서 함께 보낼수 있다.
- 각 파트마다 해더를 포함하고,
레인지리퀘스트
- 대용량 데이터를 전송할때 중단하게 되면 처음부터 받아야 하는 문제가 발생했고, 이를 해결하기 위해 고안되었다.
- 엔티티의 범위를 지정해서 호출을 한다.
콘텐츠 네고시에이션
- 클라이언트와 서버가 리소스 내용에 대해 교섭하는것, 같은 URI에 접근해 다른 언어 등을 표시하려 할때, 이를 사용한다.
- 서버 구동형 네고시에이션 : 서버 측에서 리퀘스트 헤더 필드의 정보를 참고해서 자동적으로 처리
- 에이전트 구동형 네고시에이션 : 클라리언트 측에서 콘텐츠 네고시에이션을 하는 구조. 유저가 수동으로 선택한다.
- 트랜스페이런트 네고시에이션 : 서버와 클라이언트가 각각 콘텐츠 네고시에이션을 하는 방식
인코딩 전송?
Reference
https://velog.io/@ljinsk3/03.-HTTP-%EC%A0%95%EB%B3%B4%EB%8A%94-HTTP-%EB%A9%94%EC%8B%9C%EC%A7%80%EC%97%90-%EC%9E%88%EB%8B%A4
https://velog.io/@akh9804/HTTP-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-15-%EC%97%94%ED%84%B0%ED%8B%B0%EC%99%80-%EC%9D%B8%EC%BD%94%EB%94%A9
https://ideveloper2.dev/blog/2020-01-04--%EC%97%94%ED%84%B0%ED%8B%B0%EC%99%80-%EC%9D%B8%EC%BD%94%EB%94%A9/
https://web-km.tistory.com/24
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=eqelizer&logNo=20134264633
https://sleepyeyes.tistory.com/25
https://kthan.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Http-%EC%9D%B8%EC%BD%94%EB%94%A9encoding-Hex-FirstNibble-U-UTF-8-%EB%93%B1%EB%93%B1