HTTP

wwiki
이동: 둘러보기, 검색

메시지 포맷[편집 | 원본 편집]

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를 허용하는 설정이다.

에러코드[편집 | 원본 편집]

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html