get 和 post

GET【得到】 请求与 POST【邮寄】 请求的区别

1、在浏览器进行回退操作时,get请求是无害的,而post请求则会重新请求一次
2、get请求参数是连接在url后面的,而post请求参数是存放在requestbody内的
3、get请求因为浏览器对url长度有限制(不同浏览器长度限制不一样)对传参数量有限制,而post请求因为参数存放在requestbody内所以参数数量没有限制(事实上get请求也能在requestbody内携带参数,只不过不符合规定,有的浏览器能够获取到数据,而有的不能)
	get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关。
	post理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。
	长度大小误区:https://blog.csdn.net/weixin_34062155/article/details/117991039
4、因为get请求参数暴露在url上,所以安全方面post比get更加安全
5、get请求浏览器会主动cache,post并不会,除非主动设置
6、get请求参数会保存在浏览器历史记录内,post请求并不会
7、get请求只能进行url编码,而post请求可以支持多种编码方式
8、get请求产生1个tcp数据包,post请求产生2个tcp数据包
9、浏览器在发送get请求时会将header和data一起发送给服务器,服务器返回200状态码,而在发送post请求时,会先将header发送给服务器,服务器返回100,之后再将data发送给服务器,服务器返回200 OK

Get和Post本来是应用层协议

直接看运输层的实现原理,个人觉得其实价值并不大。这道题本意可能不是考察网络协议

1、最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

2、GET和POST是什么?HTTP协议中的两种发送请求的方法。

3、HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。

4、GET/POST都是TCP链接

5、GET和POST还有一个重大区别,简单的说:

​ GET产生一个TCP数据包;POST产生两个TCP数据包。

长的说:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

  1. GET与POST都有自己的语义,不能随便混用。

  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

参考:https://blog.csdn.net/zlczsw/article/details/91046081

拓展

网络协议 参考:https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE

OSI每层模型有哪些协议:https://zhidao.baidu.com/question/1930074324546654987.html

层次划分划分
应用层DHCP ·DNS · FTP · Gopher · HTTP· SSH Telnet Gateway
表示层TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption
会话层RPC,SQL,NFS,NetBIOS,names,AppleTalk
传输层TCP · UDP · TLS · DCCP
网络层IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP
数据链路层Wi-Fi([IEEE 802.11](https://baike.baidu.com/item/IEEE 802.11)) · WiMAX([IEEE 802.16](https://baike.baidu.com/item/IEEE 802.16))
物理层以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等

为什么有的请求,浏览器不会在请求头中自动加上 origin?

只要是非同源 或者 POST请求都会带上Origin字段

POST: js的post请求

来源:https://www.cnblogs.com/rockmadman/p/6836834.html

同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的。

• 不受同源策略限制的:
1、页面中的链接,重定向以及表单提交是不会受到同源策略限制的。
2、跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的,,,等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值