http headers详解

Host,Connection,Accept,Accept-Encoding,Accept-Language,User-Agent,Referrer这7个请求头。

  • Host

         服务器根据Host这一行中的值来确定本次请求的是哪个具体的网站

  • Connection

         数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

         

Connection: Keep-alive#长连接
Connection:close#短链接
Keep-Alive: timeout=20#tcp通道保持20s
  • Accept

        指定客户端能够接受的内容类型,在这唯一要提醒的就是它只是建议服务器,而并非就是你写成什么他就返回给你什么。

  • Accept-Encoding
Accept-Encoding: compress, gzip              //支持compress 和gzip类型 
Accept-Encoding:                        //默认是identity 
Accept-Encoding: *                       //支持所有类型 
Accept-Encoding: compress;q=0.5, gzip;q=1.0      //按顺序支持 gzip , compress 
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0  // 按顺序支持 gzip , identity 
  • Accept-Language

        请求头允许客户端声明它可以理解的自然语言,以及优先选择的区域方言。

     

Accept-Language: Zh-CN, zh;q=0.8, en-gb;q=0.8, en;q=0.7#最佳语言为中文-中国(默认权重为1),其次为中文,权重为0.8,再次为英国英语,权重为0.8,最后为通用英语,权重0.7
  • user_agent

#user_agent 集合
user_agent_list = [
 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
  'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',
 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
]
#随机选择一个
 user_agent = random.choice(user_agent_list)
#传递给header
#headers = { 'User-Agent': user_agent }
  • Referer

当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。用于统计访问量、防外连接等。

# 对付“反盗链”(服务器会识别headers中的referer是不是它自己,如果不是则不响应),构建以下headers  
headers = {
"User-Agent": "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)",  
"Referer": "https://www.cnblogs.com"
}  

 

引用自:https://www.cnblogs.com/kmonkeywyl/p/8435533.html

 

posted @ 2018-09-28 15:15  软件实习生--古月  阅读(336)  评论(0编辑  收藏  举报