-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3장] HTTP 메시지 #4
Comments
http가 인터넷의 배달원이라면, http 메시지는 무언가를 담아 보내는 소포와 같다 메시지의 흐름
메시지의 각 부분
메서드
상태 코드
헤더
|
메시지의 흐름
메시지의 각 부분
메서드
상태 코드
헤더
|
메시지의 흐름
메시지의 각 부분 (Start Line, Headers, Body)
💡 CRLF : 다음 줄로 넘어가기 위해 커서를 한 줄 아래로 이동 시키고, 가장 앞으로 옮기는 것 💡 사유 구절(reason-phrase) : 숫자로 된 상태 코드의 의미를 사람이 이해할 수 있게 설명해주는 짧은 문구 메서드
상태 코드
< 302, 303, 307은 HTTP/1.0과 1.1에서 다르다. >
헤더
|
메시지의 각 부분
안전한 메서드(Safe Method) vs 멱등성(idempotent)안전한 메서드(Safe Method)
멱등성(idempotent)
|
메시지의 흐름
메시지의 각 부분HTTP 메시지는
메서드안전한 메서드HTTP 요청의 결과가 서버에 어떤 영향도 미치지 않는 메서드의 집합이다. 메서드의 종류
확장 메서드HTTP/1.1 명세에 정의되지 않은 메서드를 확장메서드라 한다. 상태 코드
헤더일반헤더메시지에 대한 기본적인 정고를 제공하는 헤더. Connection, Date, Transfer-Encoding 등이 있다. 또한, HTTP/1.0 에서는 로컬 복사본으로 객체를 캐시할 수 있도록 해주는 일반 캐시해더를 도입했다. 요청 헤더요청 메시지에서만 의미를 갖는 헤더. 일반적인 헤더인 Client-IP, From, Host, User-Agent 외에도 Accept 관련 헤더, 조건부 요청 헤더, 프락시 요청 헤더 등이 있다. 응답 헤더응답 메시지에서만 의미를 갖는 헤더. Age, Public, Server 와 같은 헤더 외에도 협상 헤더, 응답 보안 헤더 등이 존재한다. 엔터티 헤더엔터티 본문에 대해 설명하는 헤더들. Allow, Location, 콘텐츠 헤더, 엔터티 캐싱 헤더 등이 있다. |
https://www.notion.so/3-HTTP-dd4846a13eb747779dcd8a107d8fa7e7?pvs=4 메시지의 흐름인바운드, 아웃바운드, 업스트림, 다운스트립은 메시지의 방향을 의미하는 용어다. 메시지 문법사유구절 HTTP/1.0 200 NOT OK와 HTTP/1.0 200 OK는 사유 구절이 서로 전혀 달라 보임에도 불구하고 동등하게 성공을 의미하는 것으로 처리되어야 한다.
HEADHEAD 메서드는 정확히 GET처럼 행동하지만, 서버는 응답으로 헤더만으르 돌려준다. 엔터디 본문은 결코 반환되지 않는다. 일반 헤더 요청 헤더 응답 헤더 엔터티 헤더 확장 헤더 각 헤더 명을 자동화 할 순 없을까 ? spring이나 각종 프레임워크에서는 디폴트로 어떤 헤더는 무슨 역활을 한다가 정의 되어 있지는 않을까 혹은 약속 되어 있을 것으로 보인다. 국제화 전략으로 볼 수 있을 것 같다. content type이 대표적인 예시 일 것이다. |
메시지의 흐름
메시지는 원 서버 방향을 인바운드로 하여 송신
다운스트림으로 흐르는 메시지메시지는 항상 다운 스트림(클라이언트 -> 서버 -> 클라이언트) 방향으로 흐른다 메시지의 각 부분
시작줄과 헤더는 줄 단위로 분리 메시지 문법요청(메서드) (URL) (버전) (엔티티 본문) 응답(버전) (상태코드) (사유 구절) (엔티티 본문) 시작줄요청줄서버에서 어떤 동작이 일어나야하는지 - 메서드 응답줄수행 결과 상태 코드, 설명과 HTTP 버전 메서드서버가 무엇을 해야하는지 설명
상태 코드무엇이 일어났는지 설명
사유 구절상태 코드와 1대1 대응, 사람이 이해하기 쉬운 버전 헤더
엔터티 본문선택적, HTTP의 화물 (디지털 데이터) HTTP 0.9요청 - 메서드와 요청 URL, 요청 - 엔터티 만 존재 -> 너무 단순해서 제약생김 메서드안전한 메서드
그 외 메서드
확장 메서드LOCK, MKCOL, COPY, MOVE 등.. 새롭게 구현 |
No description provided.
The text was updated successfully, but these errors were encountered: