HTTP是互联网上应用最为广泛的一种网络协议,用于从www服务器传输超文本到本地浏览器的传输协议使浏览器更加高效,请求分为4个部分:请求方法、请求网址、请求头、请求体
1、请求方法:常见有GET和POST,平常在浏览器输入一个网址,便发起一个GET请求,请求的参数会包含在URL里。POST请求大多是在表单提交时发起填入的数据不会出现在URL里,会表单的形式传输,这是2者的差别。
2、请求网址:即统一资源定位符URL可以唯一确定我们想请求的资源
3、请求头:用来说明服务器要使用的附加信息如Cookies、Refer、User-Agent等
Accept:指定客户端可接受的信息类型
Accept-Language:指定客户端可接受的语言类型
Accept-Encoding:指定客户端可接受的内容编码
Host:指定请求资源主机IP和端口号
Cookie:维持当前访问会话
Refer:标识请求从哪个页面发来,服务器拿到这一信息并做相应的处理,如来源统计等
User-Agent:识别操作系统及版本、浏览器及版本,爬虫可以用此参数伪装浏览器
Content-Type:表示具体请求中媒体类型信息
爬虫大部分情况下需要设置请求头
4、请求体:请求体内容一般对于POST请求来说,而GET请求中请求体为空
application/x-www-form-urlencoded:表单数据
multipart/form-data:表单文件上传
application/json:序列化JSON数据
text/xml:XML数据
爬虫如需构造POST请求,需使用正确的Content-Type,了解各种请求库的各个参数设置时使用的是哪种Content-Type,否则会导致POST提交后无法正常响应
HTTP响应分为3个部分:响应状态码、响应头、响应体
1、响应状态码:表示服务器的响应状态如200表示服务器响应正常,404代表页面未找到,500代表服务器内部发生错误,爬虫可以根据状态码判断服务器响应状态,如状态码200则证明成功返回数据
2、响应头:包含服务器对请求的应答信息,如Content-Type、Server、Set-Cookie等
Date:响应产生的时间
Last-Modified:指定资源的最后修改时间
Content-Ecoding:指定响应内容的编码
Server:包含服务器信息如名称、版本等
Content-Type:指定返回的数据类型
Set-Cookie:设置Cookies,浏览器将此内容放在Cookies下次请求携带Cookies请求
Expires:指定响应过期时间
3、响应体:响应正文数据都在响应体中如请求网页时就是网页的HTML代码,请求图片时响应体就是图片的二进制数据,爬虫要解析的内容就是响应体