前言
对于爬虫来说,必须要了解网页的基本知识,但由于本文章侧重点在爬虫,所以对Web前端的内容只会做简单的了解。
HTTP原理
1.HTTP协议
通俗点说,当你在浏览器中输入某个网址,例如输入www.baidu.com网址访问百度时,你的浏览器就被称为客户端,百度网站就称为服务器。这个过程中,客户端向服务器发起请求,服务器接受请求之后,将处理的信息传回客户端,这个过程就是通过HTTP协议实现的。
HTTP,即超文本·传输协议,互联网上应用最广泛的一种协议。HTTP利用TCP在Web服务器和客户端之间传输信息的协议,客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
2.HTTP与Web服务器
当在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的IP地址,(例如输入地址“www.baidu.com",获取百度对应的IP地址:220.181.38.150),然后发送一个请求(又称HTTP Request)给拥有该IP的服务器,接着会收到服务器返回的响应,经过渲染呈现给用户。
简单地说就是用户通过输入url向对应的IP地址发送请求,服务器返回给用户一个响应通过渲染展现给用户
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
(1)建立请求:客户与服务器建立连接;
(2)请求过程:客户向服务器提出请求;
(3)应答过程:服务器接受请求,并根据请求返回相应的文件作为应答;
(4)关闭连接:客户与服务器关闭连接。
步骤(2)的请求方法如下:
方法 | 描述 |
---|---|
GET | 一般用于获取/查询资源信息,请求指定的页面信息,并返回响应内容 |
POST | 向指定资源提交数据进行请求,数据包含在请求体里。可能会修改或者上传资源。 |
HEAD | 类似于GET请求,返回的响应中没有具体内容,大多数用于获取头文件 |
PUT | 向服务器传送的数据取代指定内容 |
DELETE | 请求服务器删除指定页面 |
OPTIONS | 允许客户端查看服务器的性能 |
最常用的就是GET和POST请求,其他的我也没有用过
步骤(3)返回客户端的状态码可分为五种,与首位数字有关,如下表所示
代码 | 含义 |
---|---|
1** | 请求收到继续处理 |
2** | 成功 |
3** | 重定向 |
4** | 客户端错误,请求包含语法错误或者请求无法实现 |
5** | 服务器错误,服务器不能实现一种明显无效的请求 |
3.浏览器中的请求与响应
此处用谷歌浏览器访问豆瓣Top250,查看请求和响应的具体步骤如下:
1.在谷歌浏览器中输入网址:https://movie.douban.com/top250
2.按下F12或单击鼠标右键,检查,就会出现如下界面:
3.单击谷歌浏览器调试工具的“Network”选项,再按下F5或者手动刷新界面,再单击XHR,点击Name栏目下的唯一一条数据,就能查看请求与响应的信息。
从上图可知的关键信息如下:
Request URL:请求的URL地址,也就是服务器的地址
Request Method:请求方式
Status Code:状态码,200,即成功响应
Remote Address:服务器的IP地址,冒号后的是端口号