您的位置:新闻资讯 >文章内容
学网络爬虫之 HTTP 基本原理
来源:本站 作者:jinglingdaili 时间:2019-02-15 18:15:44

什么是 HTTP


HTTP(Hyper Text Transfer Protocol 超文本传输协议) 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从 www 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTP 由万维网协会和 Internet 工作小组 IETF 共同合作制定的规范。


HTTP 和 HTTPS


说起 HTTP,就不得不说 HTTPS,HTTPS 比 HTTP 多了个 S,这个 S 就为 SSL,它是一种网络加密协议,会对网页传输的数据进行加密,我们平常打开的网页,比如我的博客,在 URL 的开头,显示 https,这个就属于协议类型,当然,协议类型不止这一种,比如还有其他,如 ftp、sftp、smb 开头的 URL,在爬虫中,我们抓取的页面通常就是 http 或 https。


HTTP 和 HTTPS


HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS。HTTPS 的安全基础是 SSL,因此通过它传输的内容都是经过 SSL 加密的,它的主要作用可以分为两种:


建立一个信息安全通道来保证数据传输的安全。

确认网站的真实性。


不仅电脑端上的网站朝 HTTPS 发展,现在越来越多的 APP 也朝着 HTTPS 方向发展,在未来,互联网上到处可见 HTTPS。


HTTP 请求


请求是由客户端向服务端发出,其中可分为四部分:请求方法、请求的网址、请求头、请求体。


请求方法


常见的请求方法有 GET 和 POST。我们平常在浏览器输入一个网址,按上驾车,这样便发起了一个 GET 请求,请求的参数会包含在 URL 里。POST 请求大多是在表单提交时发起,但是你填入的数据不会出现在 URL 里,它会表单的形式传输,这也是它们两者之间的差别。


请求的网址


请求的网址,即统一资源定位符 URL,它可以唯一确定我们想请求的资源。


请求头


请求头是用来说明服务器要使用的附加信息,比较重要的信息有 Cookies、Refer、User-Agent 等。


Accept:用来指定客户端可接受哪些类型的信息。

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

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

HOST:指定请求资源主机 IP 和端口号。

Cookie:它的主要功能是维持当前访问会话。

Refer:用来标识这个请求是从哪个页面发过来的,服务器拿到这一信息并做相应的处理,如做来源统计等。

User-Agent:使服务器识别客户使用的操作系统及版本、浏览器及版本信息,爬虫用此参数来伪装浏览器。

Content-Type:用来表示具体请求中的媒体类型信息。

在做爬虫时,大部分情况下还是需要设置请求头。


请求体


请求体中的内容一般是对于 POST 请求来说的,而 GET 请求中,请求体为空。下面以我登录博客后台请求的头部信息,在登录前,输入帐号和密码信息,提交时就会以表单形式提交给服务器,这里需要注意 Request Headers 中指定 Content-Type 为上面箭头把指定的值,它才会以表单数据的形式提交。下在说下其它值的含义:

application/x-www-form-urlencoded:表单数据

multipart/form-data:表单文件上传

application/json:序列化 JSON 数据

text/xml:XML 数据


在爬虫中,如需构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。


HTTP 响应


响应是由服务端返回给客户端,其中可分为三部分:响应状态码、响应头和响应体。


响应状态码


响应状态码表示服务器的响应状态,如 200 表示服务器响应正常,404 代表页面未找到,500 代表服务器内部发生错误。在爬虫中,可以根据状态码来判断服务器响应状态,如状态码 200,则证明成功返回数据。如需获取其它状态码,可在百度搜索。


响应头


响应头包含了服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等。下面简要说明常用头信息:

Date:说明响应产生的时间。

Last-Modified:指定资源的最后修改时间。

Content-Ecoding:指定响应内容的编码。

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

Content-Type:指定返回的数据类型是什么。

Set-Cookie:设置 Cookies。告诉浏览器需要将此内容放在 Cookies 中,下次请求携带 Cookies 请求

Expires:指定响应的过期时间


响应体


响应正文数据都在响应体中,比如请求网页时,它的响应体就是网页的 HTML 代码;请求一张图片时,它的响应体就是图片的二进制数据。在做爬虫过程中,我们要解析的内容就是响应体。


相关文章内容简介
在线咨询
微信公众号

微信公众号

回到顶部