查看HTTP 各方法的消息请求头和响应头——get/head/post/put
今天介绍一下如何获取HTTP消息的请求头和响应头,请求头,顾名思义,就是包含在客户端发送给服务器的HTTP请求消息的头部,响应头包含在服务器响应客户端的请求消息的返回消息的头部。请求头中有客户端期望服务端该如何响应请求消息的信息,响应头中有服务端响应的方式,以下是通过HTTP请求百度服务的例子。
1、请求头
# -*- coding: utf-8 -*-
import requests #添加requests库url = 'https://www.baidu.com' #将百度网址作为资源URL
r1 = requests.get(url) #向百度服务器发送get请求
r2 = requests.head(url) #向百度服务器发送head请求
r3 = requests.post(url) #向百度服务器发送post请求
r4 = requests.put(url) #向百度服务器发送put请求print(r1.request.headers) #打印出get请求的请求头
print(r2.request.headers) #打印出head请求的请求头
print(r3.request.headers) #打印出post请求的请求头
print(r4.request.headers) #打印出put请求的请求头
各请求的请求头信息如下,信息以"键-值对"的形式展示。
上面请求头各项解释如下,还有很多其他请求头的选项,这里不一一解释了。
请求头 | 描述 | 参数内容 |
User-Agent | 告诉服务器,请求者的相关信息(版本号等信息) | 'ser-Agent' : 'Mozilla/5.0 (Linux; X11)' |
Accept-Encoding | 告诉服务器,客户端支持的数据压缩格式 | 'Accept-Encoding' : 'compress, gzip' |
Accept | 告诉服务器,客户端支持的数据类型 | 'Accept' : 'text/plain, text/html' |
Connection | 告诉服务器,处理完这次请求,是断开连接还是保持连接 | 'Connection' : 'close'或者'keep-alive' |
Content-Length | 告诉服务器,本次请求多长的数据 | 'Content-Length' : '348' |
2、响应头
import requestsurl = 'https://www.baidu.com'
r1 = requests.get(url)
r2 = requests.head(url)
r3 = requests.post(url)
r4 = requests.put(url)print(r1.headers) #打印出服务器响应get请求的响应头
print(r2.headers) #打印出服务器响应head请求的响应头
print(r3.headers) #打印出服务器响应post请求的响应头
print(r4.headers) #打印出服务器响应put请求的响应头
这样打印出来的内容太长,图片无法全部显示出来。
所以我们用dict()函数将响应头内容转化成字典格式,使用print()的升级版pprint()打印成竖行模式,比较美观,此时就需要import pprint库。
import requests
import pprinturl = 'https://www.baidu.com'
r1 = requests.get(url)
r2 = requests.head(url)
r3 = requests.post(url)
r4 = requests.put(url)pp = pprint.PrettyPrinter(indent=2)
pp.pprint(dict(r1.headers))
pp.pprint(dict(r2.headers))
pp.pprint(dict(r3.headers))
pp.pprint(dict(r4.headers))
r1.headers和r2.headers内容如下,内容稍微有点儿差异。head()方法的请求头少了两项,毕竟head()本就是请求HTTP消息请求头的内容。
r3.header和r4.header内容一致。
上面响应头各项解释如下,响应头也还有许多其他选项。
响应头 | 描述 | 参数内容 |
Cache-Control | 告诉所有的缓存机制是否可以缓存及哪种类型 | 'Cache-Control' : 'no-cache' |
Connection | 处理完这次请求后,是断开连接还是继续保持连接 | 'Connection' : 'close'或者'keep-alive' |
Content-Encoding | web服务器支持的返回内容压缩编码类型 | 'Content-Encoding' : 'gzip' |
Content-Length | 服务器通过这个头告诉浏览器回送数据的长度 | 'Content-Length' : '348' |
Content-Type | 服务器通过这个头告诉浏览器回送数据的类型 | 'Content-Type' : 'text/html; charset=utf-8' |
Date | 返回响应消息的时间 | 'Date' : 'Tue, 15 Nov 2010 08:12:31 GMT' |
Last-Modified | 请求资源的最后修改时间 | 'Last-Modified' : 'Tue, 15 Nov 2010 12:45:26 GMT' |
Pragma | 包括实现特定的指令,它可应用到响应链上的任何接收方 | 'Pragma' : 'no-cache' |
Etag | 请求变量的实体标签的当前值 | 'ETag' : “737060cd8c284d8af7ad3082f209582d” |
Server | web服务器软件名称 | 'Server' : 'Apache/1.3.27 (Unix) (Red-Hat/Linux)' |
Set-Cookie | 设置Http Cookie | 'Set-Cookie' : 'UserID=JohnDoe; Max-Age=3600; Version=1' |
Transfer-Encoding | 文件传输编码 | 'Transfer-Encoding' : 'chunked' |
关于其他请求头和响应头选项的解释请戳这里https://www.cnblogs.com/unknows/p/8724872.html,这位博主写的很详细了,值得一看。
查看HTTP 各方法的消息请求头和响应头——get/head/post/put相关推荐
- php获取curl头_php中CURL请求头和响应头获取方法
本文主要和大家分享php中CURL请求头和响应头获取方法,希望能帮助到大家. 1.从CURL中获取响应头$oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网 ...
- ajax前后端通信的头部消息之请求头与响应头
前后端在通信时,互相发送的消息包括头部消息和主体数据,而头部消息分为请求头和响应头两种. 请求头是前端发送,服务端获取. 响应头是服务端发送,前端获取. 设置请求头的规则: 请求头设置必须在open方 ...
- Chorme 浏览器查看请求头、响应头
第一步:打开浏览器,按键盘上的F12,出现如下界面: 第二步:点击 Network, 点击 docs . 第三步:地址栏输入baidu.com,按回车. 第四步:会看到这里出现一个地址. 第五步:点击 ...
- 谷歌浏览器查看HTTP请求头与响应头
用谷歌浏览器打开某个网页后,右击鼠标,选择[检查], 然后点击[network],再刷新一下(刷新的时候才会捕捉HTTP请求头.响应头给你看), 刷新之后,点击左边[name](其实是请求的网址)下面 ...
- Android系列之网络(二)----HTTP请求头与响应头
一.HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度.通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消息.客户端向服务器发送一个请求,请求头包 ...
- Request Headers 和Response Headers——请求头和响应头
前沿 作为一个前端开发工程师看不懂每条请求的请求头和响应头,实在是一件很难受的事情.最近花了一些时间整理了一篇文档,一起来看看前后端交互时每个资源的信息. 谷歌浏览器调试工具--查看请求资源的信息数据 ...
- HTTP请求头与响应头
本篇文章中,将学习一下HTTP请求头与响应头的知识. 一.HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度.通常HTTP消息包括:客户机向服务器的请求消息和服务器向 ...
- 常用的HTTP请求头与响应头
转载自:https://blog.csdn.net/qq_30553235/article/details/79282113 常用的HTTP请求头与响应头 HTTP消息头是指,在超文本传输协议( Hy ...
- HTTP请求头、响应头详解
HTTP的头域包括通用头.请求头.响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成(说白了就是键值对). 通用头:是客户端和服务器都可以使用的头部,可以在客户端.服务器和其他应用 ...
最新文章
- glibc降级后怎么恢复 linux_Linux(CentOS)GLIBC出错补救方式
- 墨奇科技汤林鹏:如何用 AI 技术颠覆指纹识别?
- 关于iostream的效率问题
- Java将异常入库_Exception异常库
- Android Handler的原理
- 学习编程做笔记的软件_可以在图片上做笔记的软件
- Visual Studio 2017 ASP.NET Core开发
- hadoop综述_Hadoop书籍赠品–综述
- 工作51:后端vue学习地址
- 在凡客四个月的工作总结
- kitti raw data development kit的使用
- .Net----Remoting 激活 激活方式
- 单行横向滑动的日历calendar控件
- MATLAB实现遥感图像分类——K均值算法
- [论]【DSTGCN】Dynamic SpatiotemporalGraph Convolutional Neural Networks for Traffic Data Imputation
- openGL基础光照“ADS”( Phone光照模型)(一)
- 数据库原理第四章测验(标黑的为答案)
- js实例之分解质因数
- MySQL教程——4 高级篇(性能调优、锁)
- Ant Design vue 改变表格背景颜色
热门文章
- 摆脱“悬赏”束缚,知识交易平台朝电商领域进发
- 把频谱图转换成声压级图
- 只需四步,即可轻松管理这些容易让人“忽视”的办公用品
- ChatGPT +工业机器人/自动驾驶控制器的一些尝试
- sqlalchemy查询,with_entities,label的使用
- 含泪整理最优质表情包设计模板素材,你想要的这里都有
- gitee怎么看用户名_使用Gitee
- 清华陈文光教授:AI 超算基准测试的最新探索和实践。道翰天琼认知智能平台为您揭秘新一代人工智能。
- 字节收购“影拓邦”,在线票务市场迎新一轮竞速赛?
- 九宫格输入法-字符串处理方法