HTTP 요청 또는 응답의 헤더에서 헤더 키는 서버 간의 대소 문자면에서 일정합니다. 것이다 HTTP 요청 응답 헤더 그래머
for hdr in header.keys():
if 'content-length' == hdr.lower():
recv_more_data(header[hdr]) # header[hdr] == Content-Length (5388) bytes
break # Exit for loop when if statement is met.
코드 내가
recv_more_data (header['Content-Length'])
# I know to expect 'Content-Length' not 'content-Length' or some other variation
의미를 사용하고자하는
안전 정밀 파이썬 코드 (가짜 함수 이름을 사용) :
나는 내 코드에서 예상 할 수 있도록 요청 서버는 그런 키를 가진 헤더를 반환합니다.
표준 요청
GET/HTTP/1.1
Host: www.example-host.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: */*
Accept-Language: en-US
Accept-Encoding: gzip
Connection: closed
Content-Length: 0
나쁜 그러나 가능한 응답?
HTTP/1.1 200 OK
Server: nginx/1.0.15
date: Thu, 23 Oct 2014 00:25:37 GMT
content-Type: text/html; charset=iso-8859-1
transfer-encoding: chunked
Connection: close
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
명확함이 내 코드의 깔끔함에 도움이 될 것입니다.
좋아, 아주 좋아. 나는 서버가 항상 대소 문자를 구분하는 부분을 처리한다고 가정하고 있었다. 지금까지 내가 조사한 헤더가 그런 경우가되어야한다. 그래서 내가 궁금해서. Thanks Remy – Crispy
편집이 훨씬 더 효과적입니다. 내 머리글 파싱 공간을 가진 첫 번째 콜론 기대 : '단지 콜론': ' – Crispy
레미, 당신이 대답하는 경우 하나 더 질문. 요청을 보낼 때 '표준'방식으로 보내야한다고 생각합니까 아니면 소문자로 모두 보내면됩니까? 'RFC'에 따르지 않고 적절한 웹 상호 작용을 위해서? – Crispy