GET、POST对url参数大小限制
http对其没有限制,一般是浏览器和服务器对url有限制
浏览器 | GET | POST |
---|---|---|
IE | 2k+35(2083) | |
firefox | 65536(2^16) | |
8182 | ||
Safri | 80000 | |
opera | 190000 | |
服务器 | ||
apache | 8192(2^13) | (默认)2M |
Microsoft Internet Information Server | 16384 |
如果URL不直接提供给用户,而是提供给程序调用,这时的长度就只受Web服务器影响了。
多数浏览器对于POST采用两阶段发送数据的,先发送请求头,再发送请求体,即使参数再少再短,也会被分成两个步骤来发送(相对于GET),也就是第一步发送header数据,第二步再发送body部分。HTTP是应用层的协议,而在传输层有些情况TCP会出现两次连结的过程,HTTP协议本身不保存状态信息,一次请求一次响应。对于TCP而言,通信次数越多反而靠性越低,能在一次连结中传输完需要的消息是最可靠的,尽量使用GET请求来减少网络耗时。如果通信时间增加,这段时间客户端与服务器端一直保持连接状态,在服务器侧负载可能会增加,可靠性会下降。