从头开始学python-HTTP基本原理

打卡第一天[浮云]

今天是假期第一天,坚持每天学python的计划开始啦。[碰拳]


1.HTTP基本原理

1.1. URI与URL

URI,全称“Uniform Resource Identifier”,即统一资源标识符,URL,全称”Universal Resource Locator“,即统一资源定位符。URL是URI的子集,也就是说每个URL都是URI,但并不是每个URI都是URL。因为URI还包括一个子类URN(Universal Resource Name),即统一资源名称,它只命名资源而不指定定位资源。

但是在现在的互联网中,URN用的很少,几乎所有的URI都是URL,所以一般的网页链接可以称为URL或URI(我习惯叫URL)。

从头开始学python——HTTP基本原理

URL示例

注意,网络上的每一中资源(网页、图片、音乐等)都只有一个特定的URL。

1.2.超文本(hypertext)

超链接的方法,将各种不同空间的文字信息组织在一起的网状文本,我们日常所浏览的网页就是超文本解析而成,网页源代码HTML就是超文本。

例如,我们在浏览器任意打开一个页面,如淘宝首页,在任意地方右击鼠标选择“检查”(或按快捷键F12),进入开发者工具,在元素(或elements)选项里看到的就是当前网页的源代码,这些源代码都是超文本。

从头开始学python——HTTP基本原理

淘宝网网页源代码

1.3 HTTP与HTTPS协议

HTTP(超文本传输协议),用于从网络传输超文本数据到本地浏览器的传输协议,它能保证高效而准确地传输超文本数据到本地浏览器的传输协议;

HTTPS,是以安全为目标的HTTP通道,简单来说就是HTTP的安全版,即在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此通过HTTPS传输的内容都是经过SSL加密的。

它的主要作用是:①建立一个信息安全通道以保证数据传输的安全;②确认网站的真实性,凡使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构(证书授权中心/证书授权机构)颁发的安全签章来查询,以今日头条为例,点击在网址左侧的小锁图标上,即可看到网站的信息:

从头开始学python——HTTP基本原理

如果我们要爬取这样的站点,需要设置忽略证书(verify=False),否则会提示SSL链接错误。

2.HTTP请求

我们在浏览器中输入一个URL(或在搜索框中输入一个内容),浏览器返回给我们结果,这个过程就是一个请求的过程。

2.1请求方法:

我们平常绝大多数用的都是Get或Post请求,除了这两种外,还有HEAD、PUT、DELETE等请求,了解就好。

有时候我们爬取某一个网页的内容时,会被网站拦在门外(听说还可能被封号[流泪]),这时候我们就需要伪装成普通用户,就是加上请求头(headers)。

从头开始学python——HTTP基本原理

请求标头

请求头,用来说明服务器需要使用的附加信息,如Cookie、User-Agent等,下面简要说明一下常用的头信息:


Cookie

网站辨别用户、进行会话跟踪而存储在用户本地的数据,主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登陆状态信息,之后我们每次刷新或请求该站点的其他页面时,都会发现是登陆状态。


User-Agent

简称UA,是一个特殊的字符串头,可以使服务器识别客户的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装成浏览器,若未加,很可能会被识别出是爬虫。

Refer

用于标识请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理。(和访问的网址一致)

Accept

指定客户端可以接受哪些类型的信息,如“accept:*/*”的“*/*”表示接收任意类型。


Content-Type

表示具体请求中的媒体类型信息

“content-type:application/json; charset=utf-8”,application/json 表示JSON数据格式;charset=”utf-8”是告知浏览器此页面属于什么字符编码格式

Host

用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。

Accept-Language

Accept-Encoding

Accept-Language:指定客户端可接受的语言类型

Accept-Encoding:指定客户端可接受的内容编码

2.2 响应头

从头开始学python——HTTP基本原理

响应标头

响应头包含了服务器对请求的应答信息,如Content-Type、Server、Set-Cookie等。

Server:包含服务器信息,如名称、版本号等;

Content-Type:文档类型,指定返回的数据类型,如text\html代表返回HTML文档、application\x-javascript代表返回JavaScript文件、image\jpeg代表返回图片;

Set-Cookie:设置Cookie,告诉浏览器需要将此内容放在Cookie中,这样客户端,在下次访问时,会带上该Cookie项;

Data:标识响应产生的时间;

Expires:制定相应的过期时间,使代理服务器或浏览器将加载的内容更新到缓存中,若再次访问,可直接从缓存中加载,降低服务器负载,缩短加载时间。


2.3 响应体

在做爬虫时,响应体就是我们需要解析的内容。

从头开始学python——HTTP基本原理

响应体内容

查看响应体内容,可以在开发者工具中点击“预览”,就可以看到网页的源代码,也就是响应体的内容。


今天就到这里啦,明天我们一起了解网页的结构。[灵光一闪]

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章