Python爬虫基础之HTTP详解

230 篇文章 7 订阅
229 篇文章 4 订阅

HTTP和HTTPS

在淘宝的首页网址中,URL的开头通常会有http或者https,这就是访问资源需要的协议类型。有时,我们还会看到ftp、sftp、smb开头的URL,它们都是协议类型。在爬虫中,我们抓取的页面通常就是http或者https协议的,这里首先了解一下这两个协议的含义。

HTTP全称是Hyper Text Transfer Protocol,中文名叫做超文本传输协议。HTTP协议适用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTP由万维网协会和Internet工作小组IETF共同指定的规范,目前广泛使用的是HTTP1.1版本。

HTTPS的全称是Hyper Text Transer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单而言,它是HTTP的安全版,即HTTP下加入SSL层,简称为HTTPS。

HTTPS的安全基础是SSL,因此通过它传输的内容都是经过SSL加密的,它的主要作用可以分为两种。

建立一个安全通道来保证数据传输的安全 确认网站的真实性,凡是使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询。

HTTP请求过程

我们在浏览器中输入一个URL,回车之后便会在浏览器中观察到页面内容。实际上,这个过程是浏览器向网站所在的服务器发送了一个请求,网站服务器接收到这个请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器。响应里面包含了页面的源代码等内容,浏览器再对其进行解析,便将网页呈现了出来;其模型如下所示:

image

此处的客户端即代表我们自己的PC或者手机浏览器,服务器即要访问的网站所在的服务器。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架微♥信:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

为了更直观地说明这个过程,这里用Chrome浏览器的开发者模式下的Network监听组件来做下演示,它可以显示访问当前请求网页时发生的所有网络请求和响应。

打开Chrome浏览器,右击并选择“检查”项,即可打开浏览器的开发者工具。这里访问百度,输入百度的URL后回车,观察这个过程中发生了怎样的网络请求。可以看到,在Network页面下方出现了一个个的条目,其中一个条目就代表一次发送请求和接收响应的过程,如下图所示:

image

我们先观察第一个网络请求,即www.baidu.com。其中各列的含义如下:

第一列Name:请求的名称,一般会将URL的最后一部分内容当作名称, 第二列Status:响应的状态码,这里显示为200,代表响应是正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。 第三列Type:请求的文档类型。这里为document,代表我们这次请求的是一个HTML文档,内容就是一些HTML代码。 第四列Initiator:请求源。用来标记请求是由哪个对象或进程发起的。 第五列Size:从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源,则该列会显示from cache 第六列Time:发起请求到获取响应所用的总时间。 第七列Waterfall:网络请求的可视化瀑布

点击这个条目,即可看到更详细的信息:

image

首先是General部分,Request URL为请求URL,Request Method为请求方法,Status Code为响应状态码,Remote Address为远程服务器的地址和端口,Request Policy为Referrer判别策略。

再继续往下,可以看到,有Response Headers和Request Headers,这分别代表响应头和请求头。请求头里带有许多请求信息,例如浏览器标识、cookies、Host等信息,这是请求的一部分,服务器会根据请求头内的信息判断请求是否合法,进而作出对应的响应。图中可以看到的Response Header就是响应的一部分,例如包含了服务器的类型、文档类型、日期等信息,浏览器接受到响应后,会解析响应内容,进而呈现网页内容。

这部分对于我们理解爬虫的知识相当重要,不能知其然而不知其所以然,所以打下坚实的爬虫基础显得相当重要。下面我们会陆续介绍请求和响应分别包含哪些内容。

福利:私信回复【01】可免费获取python入门教程视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值