欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > python爬虫基础篇:http协议、请求头、响应头

python爬虫基础篇:http协议、请求头、响应头

2024/12/23 8:20:32 来源:https://blog.csdn.net/m0_75129356/article/details/143244005  浏览:    关键词:python爬虫基础篇:http协议、请求头、响应头

HTTP HTTPS协议

搞爬虫就是搞http协议,位于应用层

HTTP协议以明文方式发送数据,数据无法加密,易被盗取

HTTPS协议较http协议加了个安全层,即有一个SSL协议

区别:

HTTPS协议需要一个ca证书,一般免费较少,所以需要一定费用

HTTP是超文本传输协议,信息是明文传输,https具有安全性的ssl加密传输协议。

http和https使用的是完全不同的连接方式,用的端口也不相同,http用80端口,https用443

http的连接很简单,是无状态的;https协议是有SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比http协议安全

请求头

请求网页时点开开发者工具会出现以下内容:

网页右键检查,打开network,刷新后会抓取包,打开一个网址,header中的内容就是请求头

General

Request URL:百度一下,你就知道 请求的页面url

Request Method:GET 页面请求方式

Status Code:200 OK 相应的状态码

Remote Address:180.101.50.188:443 我们访问国内网站使用的IP地址 (443https协议;如果是http协议就是80端口)

Referrer Policy: strict-origin-when-cross-origin 用于过滤Referer内容

常见的HTTP状态码:

200 请求成功

301 永久移动

302 暂时移动

304 内容未修改

400 客户端请求错误

403 客户端请求被服务器拒绝

404 页面丢失

500 服务器内部错误

502 远程服务器响应无效

Response Headers

是服务器返回的消息头

  1. Cache-Control: max-age=0 客户端是否使用缓存

  2. Connection: keep-alive 长连接

  3. Content-Length: 43

  4. Content-Type:返回数据类型

  5. Content-Type: image/gif

  6. Date: Fri, 25 Oct 2024 12:53:33 GMT 缓存过滤的时间

  7. Expires: Fri, 25 Oct 2024 12:53:33 GMT 缓存过滤的时间,在此日期后,响应失效

  8. Last-Modified: Mon, 28 Sep 1970 06:00:00 GMT

  9. Server: nginx 服务器处理信息的软件信息,服务器版本

  10. Set-Cookie:服务器给客户端设置的Cookies

  11. Strict-Transport-Security:严格传输安全协议,在这个时间内发起的请求都是以https

  12. Transfer-Encoding:数据以块的方式发送

    Request Headers

写爬虫要写的写到request中headers中的内容

  1. Accept: image/avif,image/webp,image/apng,image/,/*;q=0.8 表示客户端能够接受的数据格式,文本

  2. Accept-Encoding: gzip, deflate, br 表示客户端可以接受的编码方式

  3. Accept-Language: zh-CN,zh;q=0.9 客户端能够接受的语言

  4. Connection: keep-alive 保持长连接,即进入新的网页,该网页也是保持连接状态

  5. Cookie: BAIDUID_BFESS=B3EEC46E7E0178A59B6BE1EF0A6D2695:FG=1; ZFY=HQBF37UF5AXdesbthNVHVqU1wVjQVZtGInpkFPF3XRA:C 用于解决http无状态的痛点,可以用来保存账号,密码信息

  6. Host: eclick.baidu.com 客户端请求的主机

  7. Referer: hao123_上网从这里开始

  8. Sec-Fetch-Dest: image

  9. Sec-Fetch-Mode: no-cors

  10. Sec-Fetch-Site: cross-site

  11. User-Agent:

    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 客户端使用什么终端访问

其他

DNT :表示客户端是否允许网站追踪,1为允许

Upgrade-Insecure-Request:表示客户端优先接受加密响应,一般是在https协议会有

Program:Http1.0用来向后兼容只支持HTTP1.0的向后兼容

Cookies

Cookies是存储在电脑上的一些数据,因为HTTP是面向无连接的,也就是每一个请求和响应都是单独分开的,有时候我们需要保存用户的状态,比如你在网站一直在先,就需要记录你的信息。或者长登录的网站点击“记录账号密码”就是保存在了Cookies中

Cookies以键值对的形式存在,也就是key=value

HTML

HTML就是编写前端页面使用的代码,一般用来搭建网络骨架,界面渲染用css,实现网页交互使用js

JSON

json是一种轻量级的数据交换格式,一般用来搭建网站API

JSON语法:

数据是键值对

数据由逗号分隔

大括号保存对象

方括号保存数组

{“name”:“wy”}就是一个json对象

Ajax

举例:一个网页网站不变,内容不断刷新,例如百度图片不断下拉,内容刷新,网站不变等,就是使用Ajax实现的

Ajax是异步执行js网络请求的意思。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com