HTTP协议篇 | 一起学Python网络爬虫
Posted AI图像
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议篇 | 一起学Python网络爬虫相关的知识,希望对你有一定的参考价值。
网络爬虫其实就是一个程序或脚本,这个脚本会按照一定的规则对万维网(www)上的信息数据进行抓取,来满足特定的业务或项目分析需求。既然网络爬虫所面向的对象是万维网,就必须对支撑万维网的请求-响应网络协议http有一定的了解。
1
HTTP简介
HTTP(HyperText Transfer Protocol)即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将html(超文本标记语言)文档从Web服务器传送到Web浏览器。
2
HTTP工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
3
HTTP的特点
HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
4
HTTP的工作方式
HTTP遵循请求(Request)/应答(Response)模型,Web浏览器向Web服务器发送请求时,Web服务器处理请求并返回适当的应答。
5
标准Http协议中的六种请求方法
GET:GET可以说是最常见的了,它实质就是发送一个请求来取得服务器上的某个资源。资源通过一组HTTP头和呈现数据返回给客户端。GET请求中,永远不会包含呈现数据。
HEAD:HEAD和GET实质是一样的,差别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。
PUT:这个方法比较少见。HTML表单也不支持这个。实质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要差别,PUT通常指定了资源的存放位置,而
POST则没有,POST的数据存放位置由服务器自己决定。
DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
OPTIONS:这个方法很有趣,但极少使用。它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。
下篇待续。。。
以上是关于HTTP协议篇 | 一起学Python网络爬虫的主要内容,如果未能解决你的问题,请参考以下文章