HTTP
메시지 포맷[편집 | 원본 편집]
https://ko.wikipedia.org/wiki/HTTP#메시지 포맷
요청 메시지[편집 | 원본 편집]
요청 내용과 헤더는 <CR><LF>로 끝나야 한다.
요청 내용[편집 | 원본 편집]
GET /images/logo.gif HTTP/1.1
메서드[편집 | 원본 편집]
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
HEAD[편집 | 원본 편집]
HEAD
메서드는 GET
메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.
PUT[편집 | 원본 편집]
목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.
CONNECT[편집 | 원본 편집]
목적 리소스로 식별되는 서버로의 터널을 맺습니다.
OPTIONS[편집 | 원본 편집]
목적 리소스의 통신을 설정하는 데 쓰입니다.
목적 리소스에서 지원되는 옵션을 보여주라는 뜻??
TRACE[편집 | 원본 편집]
목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다.
PATCH[편집 | 원본 편집]
리소스의 부분만을 수정하는 데 쓰입니다.
헤더[편집 | 원본 편집]
Accept-Language: en
HTTP 메서드 | RFC | 요청에 BODY가 있나? | 응답에 BODY가 있나? | 안전 | Idempotent | 캐시 가능? |
---|---|---|---|---|---|---|
GET | ||||||
HEAD | ||||||
POST | ||||||
PUT | ||||||
DELETE | ||||||
CONNECT | ||||||
OPTIONS | ||||||
TRACE | ||||||
PATCH |
응답 메시지[편집 | 원본 편집]
상태표시[편집 | 원본 편집]
status code+reason message
HTTP/1.1 200 OK.
응답 헤더[편집 | 원본 편집]
Content-Type: text/html
헤더[편집 | 원본 편집]
출처: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers
Accept-Language[편집 | 원본 편집]
어떤 언어를 클라이언트가 이해할 수 있는지, 그리고 지역 설정 중 어떤 것이 더 선호되는지를 알려줍니다.
Host[편집 | 원본 편집]
서버의 도메인명과 포트를 특정한다. 포트가 없으면 기본포트를 의미한다.
Host헤더의 필드는 HTTP/1.1 요청 메시지에 포함되어 전송되어야 한다. 없거나 한 개 이상이면 400(Bad Request) 상태코드가 전송될 것이다.
Connection[편집 | 원본 편집]
현재의 전송이 완료된 후에 네트워크 접속을 유지할지 말지 제어한다. keep-alive면 연결이 지속되고, 동일한 서버에 대한 요청을 수행할 수 있다.
Connection과 Keep-Alive와 같은 연결-지정 헤더 필드는 HTTP/2에서 금지되어 있다. 크롬과 파이어폭스는 무시하지만, 사파리는 해당 필드가 포함되어 있으면 응답을 처리하지 않는다.
표준 홉 간 헤더인 (Keep-Alive, Transfer-Encoding, TE (en-US), Connection, Trailer (en-US), Upgrade (en-US), Proxy-Authorization (en-US) 그리고 Proxy-Authenticate (en-US))를 제외하고, 메시지에 의해 사용되는 모든 홉 간 헤더들이 Connection 헤더 내에 연결되기에, 첫번째 프록시는 자신이 해당 헤더들을 소비해야 하며 포워드해서는 안된다는 것을 알게 됩니다.
X-Forwarded-Proto (XFP)[편집 | 원본 편집]
포워드 된 프로토콜
클라이언트(ex. 브라우저)와 프록시 또는 로드 밸런서에 접속하는데 사용했던 프로토콜(http, https)을 설정한다.
nginx의 경우에는 proxy_set_header로 설정한다.
X-Forwarded-For (XFF)[편집 | 원본 편집]
HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 밸런서를 거치면, 서버 접근 로그에는 프록시나 로드 밸런서의 IP 주소만을 담고 있다. 클라이언트의 원 IP 주소를 보기위해 X-Forwarded-For 요청 헤더가 사용된다.
X-Forwarded-For: [아이피주소]
X-Forwarded-Host (XFH)[편집 | 원본 편집]
HTTP 요청 헤더에서 클라이언트가 요청한 원래 Host
헤더를 식별하는 사실상의 표준 헤더입니다.
X-Real-IP[편집 | 원본 편집]
X-Forwarded-For와 동일하다. mdn에 올라오지 않을 걸로 봐서는 사실상 표준도 아닌 것으로 보인다.
ETag[편집 | 원본 편집]
ETag HTTP 응답 헤더는 특정 버전의 리소스를 식별하는 식별자입니다.
ETag = "ETag" ":" entity-tag
Examples:
ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""
보안[편집 | 원본 편집]
Strict-Transport-Security[편집 | 원본 편집]
HSTS라고도 하며, HTTP 대신 HTTPS만을 사용하도록 설정
Preloading Strict Transport Security[편집 | 원본 편집]
구글의 preload service를 허용하는 설정이다.