Python-HTTP 헤더
클라이언트와 서버 간의 요청 및 응답에는 메시지의 헤더와 본문이 포함됩니다. 헤더에는 TCP 연결을 통해 전송되는 원시 메시지의 시작 부분에 나타나는 프로토콜 특정 정보가 포함됩니다. 메시지 본문은 빈 줄을 사용하여 헤더와 구분됩니다.
헤더의 예
http 응답의 헤더는 다음 유형으로 분류 할 수 있습니다. 다음은 헤더에 대한 설명과 예입니다.
캐시 제어
Cache-Control 일반 헤더 필드는 모든 캐싱 시스템에서 반드시 준수해야하는 지시문을 지정하는 데 사용됩니다. 구문은 다음과 같습니다.
Cache-Control : cache-request-directive|cache-response-directive
HTTP 클라이언트 또는 서버는 Cache-control캐시에 대한 매개 변수를 지정하거나 캐시에서 특정 종류의 문서를 요청하기위한 일반 헤더. 캐싱 지시문은 쉼표로 구분 된 목록으로 지정됩니다. 예를 들면 :
Cache-control: no-cache
연결
Connection general-header 필드를 사용하면 발신자가 해당 특정 연결에 대해 원하는 옵션을 지정할 수 있으며 추가 연결을 통해 프록시에서 통신해서는 안됩니다. 다음은 연결 헤더를 사용하는 간단한 구문입니다.
Connection : "Connection"
HTTP / 1.1은 발신자가 응답 완료 후 연결이 닫힐 것이라는 신호를 보내는 "닫기"연결 옵션을 정의합니다. 예를 들면 :
Connection: close
기본적으로 HTTP 1.1은 트랜잭션 후 연결이 자동으로 닫히지 않는 영구 연결을 사용합니다. 반면 HTTP 1.0에는 기본적으로 영구 연결이 없습니다. 1.0 클라이언트가 영구 연결을 사용하려는 경우keep-alive 다음과 같이 매개 변수 :
Connection: keep-alive
데이트
모든 HTTP 날짜 / 시간 스탬프는 예외없이 그리니치 표준시 (GMT)로 표시되어야합니다. HTTP 애플리케이션은 날짜 / 시간 스탬프의 다음 세 가지 표현 중 하나를 사용할 수 있습니다.
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
전송 인코딩
전송 인코딩 일반 헤더 필드 변환의 타입을 안전하게하기 위해 상기 메시지 바디에인가 송신자와 수신자 사이에 전송 된 내용을 나타낸다. 전송 인코딩은 엔티티 본문이 아니라 메시지의 속성이기 때문에 콘텐츠 인코딩과 동일하지 않습니다. Transfer-Encoding 헤더 필드의 구문은 다음과 같습니다.
Transfer-Encoding: chunked
모든 전송 코딩 값은 대소 문자를 구분하지 않습니다.
업그레이드
업그레이드 일반 헤더는 클라이언트가 지원하는 추가 통신 프로토콜을 지정하고 서버 발견이 스위치 프로토콜에 해당하는 경우 사용하고자 할 수 있습니다. 예를 들면 :
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Upgrade 헤더 필드는 HTTP / 1.1에서 호환되지 않는 다른 프로토콜로 전환하기위한 간단한 메커니즘을 제공하기위한 것입니다.
통하다
통해 일반 헤더는 중간 프로토콜과 수신자를 표시하기 위해 게이트웨이와 프록시가 사용되어야합니다. 예를 들어 HTTP / 1.0 사용자 에이전트에서 "fred"라는 내부 프록시로 요청 메시지를 보낼 수 있습니다.이 프록시는 HTTP / 1.1을 사용하여 nowhere.com의 공용 프록시로 요청을 전달합니다. www.ics.uci.edu의 원본 서버로 전달합니다. www.ics.uci.edu에서 수신 한 요청에는 다음 Via 헤더 필드가 있습니다.
Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Upgrade 헤더 필드는 HTTP / 1.1에서 호환되지 않는 다른 프로토콜로 전환하기위한 간단한 메커니즘을 제공하기위한 것입니다.
경고
경고 일반 헤더는 메시지에 반영되지 않을 수 있습니다 메시지의 상태 나 변화에 대한 정보를 전송하는 데 사용한다. 응답에는 둘 이상의 경고 헤더가 포함될 수 있습니다.
Warning : warn-code SP warn-agent SP warn-text SP warn-date
예
아래 예에서는 urllib2 모듈을 사용하여 urlopen을 사용하여 응답을 얻습니다. 다음으로 info () 메서드를 적용하여 해당 응답에 대한 헤더 정보를 가져옵니다.
import urllib2
response = urllib2.urlopen('http://www.tutorialspoint.com/python')
html = response.info()
print html
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000
Content-Type: text/html; charset=UTF-8
Date: Mon, 02 Jul 2018 11:06:07 GMT
Expires: Wed, 01 Aug 2018 11:06:07 GMT
Last-Modified: Sun, 01 Jul 2018 21:05:38 GMT
Server: ECS (tir/CDD1)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 22063
Connection: close