최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
− | == 메시지 포맷 ==
| |
− | [https://ko.wikipedia.org/wiki/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 ======
| |
− | <code>HEAD</code> 메서드는 <code>GET</code> 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.
| |
− |
| |
− | ====== PUT ======
| |
− | 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.
| |
− |
| |
− | ====== CONNECT ======
| |
− | 목적 리소스로 식별되는 서버로의 터널을 맺습니다.
| |
− |
| |
− | ====== OPTIONS ======
| |
− | 목적 리소스의 통신을 설정하는 데 쓰입니다.
| |
− |
| |
− | 목적 리소스에서 지원되는 옵션을 보여주라는 뜻??
| |
− |
| |
− | ====== TRACE ======
| |
− | 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다.
| |
− |
| |
− | ====== PATCH ======
| |
− | 리소스의 부분만을 수정하는 데 쓰입니다.
| |
− |
| |
− | ==== 헤더 ====
| |
− | Accept-Language: en
| |
− | {| class="wikitable"
| |
− | |+요약표
| |
− | !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 === |
146번째 줄: |
15번째 줄: |
| | | |
| 클라이언트(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 ===
| + | 출처: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers |
− | 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를 허용하는 설정이다.
| |
| | | |
| == 에러코드 == | | == 에러코드 == |