【http】get与post请求

基本概念

  • Get : 检索、获取

需要get的内容就会体现在url上:


那么我如果想要登录一个账号,需要输入银行密码,是不是也会体现在URL上呢。http协议已经考虑到了这个问题,这就是post请求。

  • Post:邮寄、投递。更倾向于创建/更新的功能

比如给文章点赞、评论的时候调用的就是post功能。Post最初的设计也就是为了表单产生的。
和get最大的区别就是请求的内容不在url里显示,而是在请求主体里面。
从这里看出其实post也不是安全的,毕竟还是明文的传输过程。如果要真正的实现安全,还需要使用https加密主体的内容。

从Post的创建更新的含义来看,请求的内容可能会很大,所以才会把内容放在请求主体里面,URL的长度是有限制的,限制的长度就限制了请求的内容,URL的长度限制是浏览器设置的:

1. IE浏览器对URL的长度现限制为2048字节。
2. 360极速浏览器对URL的长度限制为2118字节。
3. Firefox(Browser)对URL的长度限制为65536字节。
4. Safari(Browser)对URL的长度限制为80000字节。
5. Opera(Browser)对URL的长度限制为190000字节。
6. Google(chrome)对URL的长度限制为8182字节。

收藏与缓存

  • 收藏:从用户的角度来看,加入页面收藏夹的时候,浏览器就是根据URL给用户设定特定的收藏项,即使浏览器不进行缓存,也是对URL进行访问,如果是post,url上没有参数没有办法做到真正意义的收藏。

  • 缓存:
    收藏之后浏览器就会对页面进行缓存以此来实现快速的访问,Get请求中就会加入一些条件判断上次缓存下来的内容是否可用,post一般不作缓存。


编码与内容类型

因为URL是英国人发明的,所以如果要使用中文要进行编码(在检索时我们的get请求就需要用到中文字符),所以对于检索中文时,get的部分url请求就会进行编码,URL的字符使用了绝大部分的ASCII字符集。浏览器使用的是百分号编码(RUL编码)


当然也有其他编码方式。

五个不同

  • 功能不同

  1. get是从服务器上获取数据。
  2. post是向服务器传输数据
  • 过程不同

1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。

2、post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

  • 获取值不同

1、对于get方式,服务器端用Request.QueryString获取变量的值。

2、对于post方式,服务器端用Request.Form获取提交的数据。

  • 传送数据量不同

1、get传送的数据量较小,不能大于2KB。

2、post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

  • 安全性不同

1、get安全性非常低。

2、post安全性较高。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容