get和post

2021-02-22  本文已影响0人  肥羊猪

针对浏览器和服务器端:

1.GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,POST把提交的数据则放置在是HTTP包的包体中。
2.GET的长度受限于url的长度,而url的长度限制是特定的浏览器和服务器设置的,理论上GET的长度可以无限长。
3.POST是没有大小限制的,HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力
4.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。
5.POST的安全性要比GET的安全性高,主要是因为url可见,本质上get,post都不安全,可用https形成两端加密。
GET - 从指定的资源请求数据。
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据

POST - 向指定的资源提交要被处理的数据
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求

但实际上get和post本质上都是TCP链接。由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同.

tcp:一种面向连接的、可靠的、基于字节流的传输层通信协议

对于GET方式的请求,浏览器会把http,header和data一并发送出去,服务器响应200(返回数据)
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

Get产生一个TCP数据包;Post产生两个TCP数据包。

建立TCP连接:
客户端和服务端总共发送3个包以确认连接的建立
[图片上传中...(image.png-c4dd2e-1616899433737-0)]

三次握手.png

终止TCP连接:


四次挥手.png
上一篇 下一篇

猜你喜欢

热点阅读