Python中Post   和   Get   请求的区别?

本文详细阐述了HTTP请求中GET与POST方式的主要区别,包括数据传输位置、大小限制、安全性及效率等方面,并提供了两种请求方式的具体工作流程。

GET  请求,请求的数据会附加在  URL  之后,以?分割  URL  和传输数据,多个参数用&连接。URL  

 

编码格式采用的是  ASCII  编码,而不是  uniclde,即是说所有的非  ASCII  字符都要编码之后再传输。

 

POST  请求:POST  请求会把请求的数据放置在  HTTP  请求包的包体中。上面的  item=bandsaw  

 

是实际的传输数据。

 

因此,GET  请求的数据会暴露在地址栏中,而  POST  请求则不会。



 

传输数据的大小:

  HTTP  规范中,没有对  URL  的长度和传输的数据大小进行限制。但是在实际开发过程中,对

 

  GET,特定的浏览器和服务器对  URL  的长度有限制。因此,在使用  GET  请求时,传输数据会

 

受到  URL  长度的限制。

 

对于  POST,由于不是  URL  传值,理论上是不会受限制的,但是实际上各个服务器会规定对  POST


 


提交数据大小进行限制,ApacheIIS  都有各自的配置。

 


安全性:


·POST  的安全性比  GET  的高。这里的安全是指真正的安全,而不同于上面  GET  提到的安全方法

 

中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过  GET  请求,

 

用户名和密码都会暴露再  URL  上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的

 


历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET  请求提交的数据

 

还可能会造成  Cross-site  request  frogery  攻击。

 

效率:GET    POST  效率高。

 

POST  请求的过程:

 

1.浏览器请求  tcp  连接(第一次握手)

 

2.服务器答应进行  tcp  连接(第二次握手)

 

3.浏览器确认,并发送  post  请求头(第三次握手,这个报文比较小,所以  http  会在此时进行

 

第一次数据发送)

 

4.服务器返回  100  continue  响应

 

5.浏览器开始发送数据

 

6.服务器返回  200  ok  响应

 

GET  请求的过程:

 

1.浏览器请求  tcp  连接(第一次握手)

 

2.服务器答应进行  tcp  连接(第二次握手)

 

3.浏览器确认,并发送  get  请求头和数据(第三次握手,这个报文比较小,所以  http  会在此时

 

进行第一次数据发送)

 

4.服务器返回  200  OK  响应


欢迎阅读和交流,如果对朋友你有帮助,请挥挥小手点个赞,谢谢!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值