http访问中GET和POST的原理解析

1.HTTP有几种请求方法:

  在HTTP1.1中总共定义了8种方法:

  在HTTP1.0中,定义了三种请求方法:GET,POST和HEAD方法。

  在HTTP1.1中,新增了五种请求方法:OPTINOS,PUT,DELETE,TRACE和CONNECT方法。

  但我们常用的就是get和post方法

2.GET和POST两种请求方法都有哪些区别?

  1.get的传递参数是放在url中的,而post的请求方式是放在request body中的,所以post比get更安全。

  2.get传递的参数有大小限制,在2k以下,post参数在2G以下。

  3.get请求只能进行url编码( application/x-www-form-urlencoded),而post支持多种编码格式

  4.get请求会被浏览器主动缓存,而post不会,除非手动设置。

3.GET请求有request body吗,如果有的话,可以像post一样放在里面吗?

  因为GET和POST都是基于TCP/IP的底层通信协议,所以在技术上get也是可以加入request body的,但是由于上层的HTTP协议的不同,导致服务器不一定能够解析到request body

4.GET请求的参数写法是固定的吗?

  在约定中我们是将参数写在?后面,使用&分割,但是也可以自己定义,但是需要服务器端进行相应的解析处理。

5.POST比GET方法更加安全,这种说法对吗?

  不对,因为HTTP在网络上都是明文传输的,所以并不完全安全,如果要安全传输,只有加密,也就是使用HTTPS。

6.GET和POST请求发送的数据包有什么不同?

  GET请求时产生一个TCP数据包,POST请求时产生两个TCP数据包。

  GET:浏览器会把http header和data一并发送过去,服务器返回200(返回数据)

  POST:浏览器先发送header,服务器响应100 connect,浏览器再发送data,服务器响应200 OK(返回数据)

  

posted @ 2021-09-01 17:28  WK_BlogYard  阅读(1067)  评论(0编辑  收藏  举报