美文网首页
Python 爬虫基础 (三) 网络传输协议

Python 爬虫基础 (三) 网络传输协议

作者: 汪小鱼 | 来源:发表于2021-10-02 09:55 被阅读0次

1 URI和URL

日常生活中,我们在浏览器中输入网址(URL),浏览器会对用户输入的网址进行解析。然后,浏览器会根据网址的含义来生成请求消息。浏览器通过请求消息将用户需要哪些数据告知服务器,获取相关的资源。像这种通过发送请求获取服务器资源的 Web 浏览器等,都可以称为客户端。

网络

我们通过浏览器输入网址可以访问一个个网站,那什么是网址呢?而服务器又怎样保证我们请求的资源能够准确传输到我们电脑呢?

在回答这些问题之前,我们需要了解一些基本的概念:

URI(Uniform Resource Identifier),统一资源标识符。URI 就是利用访问资源所使用的协议表示的资源定位符。URI 用字符串标识某一互联网资源。

URL(Universal Resource Locator),统一资源定位符。URL 是用来表示从互联网上得到的资源位置和访问这些资源位置的方法。

其中,URL 是 URI 的子集,URI 还有一个子类 URN。但由于 URN 使用较少,目前几乎所有的 URI 都是 URL。

URL 一般形式由以下四个部分组成:

<协议> : // <主机> : <端口> / <路径>
<协议> --- 访问数据源的机制(网络传输协议)
<主机> ---服务器域名
<端口> ---服务器端口号(可省略)
<路径> ---数据源文件的路径名
示例:https://www.baidu.com

当然我们一般也会省略路径,因为服务器上会事先设置好文件名省略时要访问的默认文件名。这个设置根据服务器不同而不同,大多数情况下是 index.html 或者 default.html 之类的文件名。我们日常也喜欢叫这个默认页面为主页 (home page)。

浏览器中的网址

了解了 URL 的基本构成我们就知道了浏览器可以通过 URL 定位到我们所需要的资源,但需要知道的是这里资源的定义是指 “可标识的任何东西”,这是一种较为广泛的定义。

2 HTTP和HTTPS

HTTP(Hyper Text Transfer Protocol),超文本传输协议。是一个基于“请求与响应”模式的、无状态的应用层协议。无状态指的是第一次请求与第二次请求之间并没有相关的关联。HTTP 协议采用 URL 作为定位网络资源的标识。那什么是超文本呢?

超文本(Hypertext)是一种可以显示在电脑显示器或电子设备上的文本,现时超文本普遍以电子文档的方式存在,其中的文字包含有可以链接到其他字段或者文档的超链接,允许从当前阅读位置直接切换到超链接所指向的文字。像我们平常看到的网页,网页的源码就可以称作超文本。

HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。这就指明了客户端是先开始建立通信的,服务器端在没有接收到请求之前不会发送响应。

HTTP 协议定义了浏览器怎样向服务器请求资源,以及服务器怎样把资源传送给浏览器。和我们小时候写信一样,和朋友书信往来时,只有写信人与收信人遵从统一的格式(地址写法),信件才能准确地传输到目的地。HTTP 协议就是资源传递双方所遵从的一种“格式”。

请求与响应

URL 是通过 HTTP 协议存取资源的 internet 路径,它就像我们电脑里边的一个文件的路径一样,只不过这个文件不在电脑里,在 internet 上,那每一个 URL,对应了 internet 上的一个数据资源。

正如前文所说,通过协议客户端可以与服务器进行数据的传输。为了更加准确地传输数据,我们需要告知服务器我我们的意图(方法),那么客户端有哪些与服务器沟通的方法呢?

常用的请求方法

这里只需要了解以下就可以,后面讲解爬虫的相关知识时会再就其中的方法进行更为详细的讲解。

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。结合它的英文名我们不难得知 HTTPS 的安全基础是 SSL,这是一种通过证书密钥加密的方式用来保证数据传输的安全。

SSL 证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为 SSL 服务器证书。
SSL证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

大多数网站都有 SSL 证书,可以安全地传输数据。但没有 SSL 证书并不一定代表网站不安全,例如我们国家的一些有官方背景的网站,大多是由我国相关机构颁发的,独立于 CA 机构之外,因此证书验证不会通过。

证书验证

3 请求与响应

日常生活中,我们通过在浏览器地址栏键入一个 URL 并回车,浏览器要做的第一步工作就是对 URL 进行解析,从而生成发送给服务器的请求消息(Request)。这个过程中,浏览器就向资源所在服务器发起了一个请求,请求有很多种方式(参照上文中的表格有 get、put 等),一般最常用的就是 Get 和 Post 方法。

发送请求后,服务器就对发起的请求进行解析和处理,然后根据请求生成相对应的响应(Response),并返回给浏览器。正是通过这种请求响应的方式,浏览器(客户端)和服务器之间进行了基于 HTTP 协议的通信。

客户端和服务器之间的请求响应

这里大家只有理解这个过程就行,后面讲解开发者工具时会具体讲述请求和响应的主要部分以及作用。

相关文章

网友评论

      本文标题:Python 爬虫基础 (三) 网络传输协议

      本文链接:https://www.haomeiwen.com/subject/iegknltx.html