关于对浏览器发送POST请求的一点研究
网上对与HTTP的Method,GET和POST的区别,说得毕竟详细。然后提到一点,说浏览器对两者的还有一个比较容易让人忽略的区别就是:POST会分2次发送,而GET只1次。
GET发送1次,这个没什么好说的。然后对于POST,做了个测试,结果如下:
IE11浏览器【11.0】,分2次发送
Opera浏览器【49.0.2725.47】,分1次发送
Chrome浏览器【64.0.3282.119(正式版本) (64 位)】,分2次发送
Firefox【57.0.4 (64 位)】,1次发送
Safari【5.1.7】,2次发送
有的文章说,POST要请求2次,其实这应该是不准确的说法,请求依然是1次,只是分别发送了请求Header和Body。
对于服务器(nginx),日志是这样的,都是1次请求:
27.10.68.64 - - [23/Feb/2018:11:01:32 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
27.10.68.64 - - [23/Feb/2018:11:01:38 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36 OPR/49.0.2725.47" "-"
27.10.68.64 - - [23/Feb/2018:11:01:41 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" "-"
27.10.68.64 - - [23/Feb/2018:11:01:45 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" "-"
27.10.68.64 - - [23/Feb/2018:11:01:51 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36" "-"
网络资源:
99%的人理解错 HTTP 中 GET 与 POST 的区别: https://www.oschina.net/news/77354/http-get-post-different
不同浏览器发送POST请求分包情况比较: http://blog.csdn.net/someonelikesyou/article/details/8078380
HTTP1.1协议中文版-RFC2616: http://www.cnblogs.com/k1988/archive/2010/01/12/2165683.html
详细截图如下:
IE11浏览器【11.0】,分2次发送:
Opera浏览器【49.0.2725.47】,分1次发送:
Chrome浏览器【64.0.3282.119(正式版本) (64 位)】,分2次发送:
Firefox【57.0.4 (64 位)】,1次发送:
Safari【5.1.7】,2次发送:
关于对浏览器发送POST请求的一点研究的更多相关文章
- java 模拟浏览器发送post请求
java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...
- http请求及模拟浏览器发送http请求
/** *测试新增图片 * @throws IOException * @throws HttpException * @throws SAXException * @th ...
- 微信浏览器发送ajax请求执行多次解决方法
http://www.cnblogs.com/whatlonelytear/p/8934738.html
- ajax是怎么发请求的和浏览器发的请求一样吗?cookie
下午设置cookie时出现了个问题 用ajax发的post请求php,在php的方法里设置了cookie,然后在浏览器请求的php里打印cookie值但是一直获取不到cookie的值 分析: 1.aj ...
- C++发送HTTP请求---亲测可行(转)
转自:http://hi.baidu.com/benbearlove/item/1671c23017575825b3c0c53f 环境:xp sp3,vs2008,在静态库中使用 MFC #inclu ...
- Django学习系列10:保存用户输入——编写表单,发送POST请求
要获取用户输入的待办事项,发送给服务器,这样才能使用某种方式保存待办事项,然后在显示给用户查看. 上次运行测试指出无法保存用户的输入.现在,要使用HTML post请求. 若想让浏览器发送POST请求 ...
- Fiddler5 发送HTTP请求
1.Fiddler Composer发送HTTP请求 Composer的编辑模式主要有2种:Parsed模式和Raw模式. 实例1:Composer发送get请求 实例2:Composer发送post ...
- 转 Fiddler5 发送HTTP请求
Fiddler5 发送HTTP请求 文章转自:https://www.cnblogs.com/zhengna/p/10879573.html 1.Fiddler Composer发送HTTP请求 C ...
- [基础架构]PeopleSoft工作原理(从浏览器发送请求开始)
PeopleSoft体系结构是由几大组成部分构成,之前文章已经详细讲过,了解这几大组成部分是怎么协同工作的更为重要.在本文中将帮助您了解PeopleSoft的工作原理以及用户发送的请求是如何被解析以及 ...
随机推荐
- [Luogu 3613] 睡觉困难综合征
Description 给定一棵 \(n\) 个点的树,每个点上有位运算 \(opt\) 和一个权值 \(x\),位运算有 &,|,^ 三种. 要求支持: 修改点 \(v\) 的 \(opt\ ...
- [转]ionic工作原理
本文转自:https://segmentfault.com/a/1190000011495654 1.Ionic的工作原理 Ionic通过cordova把一个Web应用嵌入原生应用 用户打开一个ion ...
- Oracle入门《Oracle介绍》第一章1-4 Oracle 用户管理
1.Oracle 默认用户 只有用合法的用户帐号才能访问Oracle数据库 Oracle 有几个默认的数据库用户 数据库中所有数据字典表和视图都存储在 SYS 模式中.SYS用户主要用来维护系统信息和 ...
- 乐字节-Java8新特性之Base64和重复注解与类型注解
上一篇小乐给大家说了<乐字节-Java8新特性之Date API>,接下来小乐继续给大家说一说Java8新特性之Base64和重复注解与类型注解. 一.Base64 在Java 8中,内置 ...
- matlab中常数下的点是什么意思
加上点"."后表示两个矩阵或向量对应位置进行运算, 这时候要求进行操作的两个变量必须维数相同(与矩阵乘法对矩阵维数要求不同)
- Matlab Euler's method
% matlab script to test efficiency of % Euler's method, classical Runge-Kutta, and ode45 % on Arenst ...
- 浅析"WeixinJSBridge is not defined"
Fundebug并没有使用微信 JS-SDK,然而却收到了WeixinJSBridge is not defined的报错: 我们的用户也收到了类似的错误报警,并且很多开发者都遇到类似的问题: 我的微 ...
- Docker 搭建 ELK 收集并展示 tomcat 日志
架构 前端展示 --> 索引搜索 <-- 日志提取及过滤 --> 日志缓存 <-- 日志收集 Kibana --> Elastash <-- Logstash -- ...
- 数组去重(ES5、ES6)
对象赋值思想:(接收后台数据绘制统计图用到了该想法) // ES5 /** * 数组.字符串去重 * @param {[string/array]} [数组] * @return {[array]} ...
- python之if循环
if 条件: if语句块else: 语句块 money = int(input("请输入你兜里的钱:")) if money > 500: print("吃肉&qu ...