浅显理解GET/POST请求

l来公司实习不久,却遇见了一个因为BUG引起的大问题,因为一些数据只做了前台验证,因此在URL中直接跳过前台验证后,引起了大问题,好在及时发现,并且及时解决,这个BUG出现的原因也牵扯到了GET/POST请求,正好有时间,我也重新了解一些GET/POST请求的区别。(原来实际上在学校上课时候是学过的,原谅我上课时候没有特别认真)

就我的理解,GET请求和POST请求的区别可以划分为:

GET:GET请求会把数据放到URL后面(把数据放到HTTP协议的头部),如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

GET请求的数据长度应该会受到限制,因为记得计算机网络课程有学过HTTP报头的最大长度要求。另外在网上看到说GRT请求只向服务器发送一次请求,将报头和数据一起发过去。(不知道这么发送过去,之后还会不会有,HTTP的正式报文,之后再研究一下)。

POST:相对GET请求来说,POST请求中的数据是写在HTTP报文体中的,网上很多说法说POST请求数据没有大小限制,但是在计算机网络的课程上学到过,HTTP报体对存数据的大小也是有限制的,每个HTTP报文都是固定大小,因此我觉得这个数据大小没有限制应该只是相对的。(之后在好好温习一些HTTP的相关知识),最后看到网上的一些解释,POST请求向服务器请求两次,一次发报头请求,另一次发数据。

猜你喜欢

转载自peter-hang.iteye.com/blog/2406173