1. post要比get更加安全?
像我们在有get请求的时候,会将参数带到地址栏里,但是post却不会,这样看来,是相对来说比较安全了。但是因为 HTTP 在网络上是明文传输的,只要在网络抓包,就能获取到数据报文。
2. get方法长度限制?
HTTP 协议没有 Body 和 URL 的长度限制,对 URL 限制的大多是浏览器和服务器的原因。
浏览器原因就不说了,服务器是因为处理长 URL 要消耗比较多的资源,为了性能和安全(防止恶意构造长 URL 来攻击)考虑,会给 URL 长度加限制。
3. post 会产生两个 TCP 数据包,而 get 只产生一个?
post 会将 header 和 body 分开发送,先发送 header,服务端返回 100 状态码再发送 body。
HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试(Chrome)发现,header 和 body 不会分开发送。
所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 post 必然行为。