"HTTP"의 두 판 사이의 차이
(→Request Method) |
(→X-Forwarded-Proto (XFP)) |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
== 메시지 포맷 == | == 메시지 포맷 == | ||
− | [https://ko.wikipedia.org/wiki/HTTP# | + | [https://ko.wikipedia.org/wiki/HTTP#메시지_포맷 https://ko.wikipedia.org/wiki/HTTP#메시지 포맷] |
=== 요청 메시지 === | === 요청 메시지 === | ||
22번째 줄: | 22번째 줄: | ||
====== OPTIONS ====== | ====== OPTIONS ====== | ||
목적 리소스의 통신을 설정하는 데 쓰입니다. | 목적 리소스의 통신을 설정하는 데 쓰입니다. | ||
+ | |||
+ | 목적 리소스에서 지원되는 옵션을 보여주라는 뜻?? | ||
====== TRACE ====== | ====== TRACE ====== | ||
144번째 줄: | 146번째 줄: | ||
클라이언트(ex. 브라우저)와 프록시 또는 로드 밸런서에 접속하는데 사용했던 프로토콜(http, https)을 설정한다. | 클라이언트(ex. 브라우저)와 프록시 또는 로드 밸런서에 접속하는데 사용했던 프로토콜(http, https)을 설정한다. | ||
+ | |||
+ | nginx의 경우에는 [[Nginx#proxy set header|proxy_set_header]]로 설정한다. | ||
=== X-Forwarded-For (XFF) === | === X-Forwarded-For (XFF) === | ||
HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 밸런서를 거치면, 서버 접근 로그에는 프록시나 로드 밸런서의 IP 주소만을 담고 있다. 클라이언트의 원 IP 주소를 보기위해 X-Forwarded-For 요청 헤더가 사용된다. | HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 밸런서를 거치면, 서버 접근 로그에는 프록시나 로드 밸런서의 IP 주소만을 담고 있다. 클라이언트의 원 IP 주소를 보기위해 X-Forwarded-For 요청 헤더가 사용된다. | ||
X-Forwarded-For: [아이피주소] | X-Forwarded-For: [아이피주소] | ||
+ | |||
+ | === X-Forwarded-Host (XFH) === | ||
+ | HTTP 요청 헤더에서 클라이언트가 요청한 원래 <code>Host</code> 헤더를 식별하는 사실상의 표준 헤더입니다. | ||
=== X-Real-IP === | === X-Real-IP === | ||
X-Forwarded-For와 동일하다. mdn에 올라오지 않을 걸로 봐서는 사실상 표준도 아닌 것으로 보인다. | X-Forwarded-For와 동일하다. mdn에 올라오지 않을 걸로 봐서는 사실상 표준도 아닌 것으로 보인다. | ||
+ | |||
+ | === ETag === | ||
+ | ETag HTTP 응답 헤더는 특정 버전의 리소스를 식별하는 식별자입니다. | ||
+ | |||
+ | ETag = "ETag" ":" entity-tag | ||
+ | |||
+ | Examples: | ||
+ | |||
+ | ETag: "xyzzy" | ||
+ | |||
+ | ETag: W/"xyzzy" | ||
+ | |||
+ | ETag: "" | ||
== 보안 == | == 보안 == |
2023년 10월 27일 (금) 08:17 기준 최신판
메시지 포맷[편집 | 원본 편집]
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를 허용하는 설정이다.