get和post请求

HTTP请求中get和post区别

GET 方法

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

 POST方法

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

1.get请求是通过url直接请求数据,数据信息可以在url中直接看到,比如浏览器访问;而post请求是放在请求头中,我们是无法直接看到的

2.数据传输大小:get提交有数据大小限制,一般是1024字节,而这种说法也不完全准确,http协议并没有设定url字节长度的上限,而是浏览器做了处理,所以长度依据浏览器的不同而有所不同,post请求在http协议中没有做说明,一般来说是没有设置限制的,但是实际上浏览器也有默认值,总体来说,少量的数据使用get,大量的数据使用post

3.参数传递方式及安全性:get请求因为数据参数是暴露在url中,所以安全性比较低,比如密码是不能暴露的,就不能使用get请求;post请求中,请求参数信息是放在请求投的,所以安全性较高,可以使用,在实际中,涉及到登录操作的时候

4.缓存机制:get在浏览器回退时无害的,而post会再次提交请求

5.编码:get请求只能进行url编码,而post支持多种编码方法

6.缓存机制:get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留

7.url参数传递长度:get强求在url中传送的参数是有长度限制的,而post没有

9.安全性:get比post更不安全,因为参数直接暴露在url中,所以不能用例传递敏感信息

10.参数传递:get参数通过url传递,post放在request body中

11.数据包:get产生一个tcp数据包,post产生两个tcp数据包

12.请求发送过程:GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200

POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次

13.本质:get和post本质上就是tcp链接,并无差别,但是由于http的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同

14.比喻【tcp汽车,运输数据,如果都是汽车,世界混乱,http就诞生了,http给汽车运输设定了几个服务类别,有get,post,put,delete等,get在车顶堆货,post是车内放货,浏览器属于运输公司,http只是个行为准则】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值