当我作为个小白使用burp抓包时会经常看到请求报文中的GET与POST两种基于TCP协议的method从而比较好奇这两种方法的形成与联系。前几天看了些视频和资料后在此小小总结。
一 GET
通过get的传参体现在url上,但web服务器对url的接收长度是由限制的,2k较为常见因而想要传递更多的参数不太现实,并且GET只接受ASCII字符。
GET只会产一个TCP数据包(一次性包含 http header和data),相当于不打招呼直接上门送东西,在网络环境较差时数据包的完整性难以保障。
默认情况下,就像输入一个网址浏览器就会cache,通过GET传参浏览器会cache下来其参数会得到记录。
二 POST
通过POST的传参其参数都在request body里面从而可以传输更大更多类型的参数。
POST会产生两个TCP数据包(分别是http header和data),相当于是先打招呼再送货,在网络环境较差时数据包的完整性能得到较好的保障。
默认情况下,POST的参数不会被浏览器记录。参数不会直接暴露在url中相比GET会安全一些。