基本概念
-
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编码)。
当然也有其他编码方式。
五个不同
-
功能不同
- get是从服务器上获取数据。
- 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安全性较高。
网友评论