python爬虫(二)_HTTP的请求和响应 (2)

POST请求参数在请求体中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求体中包含许多参数或者文件上床操作等),请求的参数包含在"Content-Type"消息头里,指明该消息体的媒体类型和编码。

注意:避免使用GET方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用GET方式,用户输入的用户名和密码将在地址栏中暴露无遗。

常用的请求头

1、Host(主机和端口号)

Host:对应网址URL中的web名称和端口号,用于指定被请求资源的Internet主机和端口号,通常属于URL的一部分。

2. Connection(链接类型)

Connection:表示客户端与服务器链接类型

Client发起一个包含Connection: keep-alive的请求,HTTP/1.1使用keep-alive为默认值。

Server收到请求后:

如果Server支持keep-alive,回复一个包含Connection:keep-alive的响应,不关闭连接;如果Server不支持keep-alive,回复一个包含Connection:close的响应,关闭连接。

如果client收到包含Connection:keep-alive的响应,向同一个连接发送下一个请求,直到乙方主动关闭连接。

keep-alive在很多情况下能够重用连接,减少资源消耗,缩短响应时间,比如当浏览器器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都去请求建立连接。

3.Upgrade-Insecure-Request(升级为HTTPS请求)

Upgrade-Insecure-Requests:升级不安全的的请求,意思是会在加载http资源时自动替换成成https请求,让浏览器不再显示https页面中的http请求警报。

HTTPS是以安全为目标的HTTP通道,所以在HTTPS承载的页面上不允许出现HTTP请求,一旦出现就是提示或报警。

4.User-Agent(浏览器名称)

User-Agent:是客户端浏览器的名称,以后会详细讲。
5.Accept(传输文件类型)
Accept:指浏览器或其他客户端可以接收的MIME(Multipurpose Internet Mail Extensions(多用途互联网邮件扩展))文件类型,服务器可以根据它判断并返回适当的文件格式。

举例:
Accept: */*:表示什么都可以接收。
Accept: image/gif:表明客户端希望接受GIF图像格式的资源。
Accept: text/html:表明客户端希望接受html文本。
Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8:表示浏览器支持的MIME类型分别是html文本、xhtml和xml文档、所有的图像格式资源。

**q是权重系数,范围0<= q <= 1,q值越大,请求越倾向于获得其";"之前的类型表示的内容。若没有指定q值,则默认为1,按从左到右排序顺序;若被赋值为0,则用于表示浏览器不接受此内容类型。 **
Text:用于标准化地表示的文本信息,文本消息可以是多种字符集或者多种格式;Application:用于传输应用程序数据或者二级制数据。详情请点击
6. Referer(页面跳转处)
Referer:表明产生请求的网页来自于哪个URL,用户是从该Referer页面访问当当前请求的页面。这个属性可以用来跟踪WEB请求来自哪个页面,是从什么网站来的。

有时候遇到下载某网站图片,需要对应的Referer,否则无法下载图片,那是因为人家做了防盗链,原理就是根据referer去判断是否是本网站的地址,如果不是,则拒绝,如果是,就可以下载;

7. Accept-Encoding(文件编码格式)
Accept-Encoding:指出浏览器可以接收的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传输速度。浏览器在接收到WEB端相应之后编码,然后再检查文件格式,许多情形下还可以减少大量的下载时间。

举例:Accept-Encoding:gzip;q=1.0,identity;q=0.5,*;q=0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwfjf.html