程序员面试宝典--http协议get和post请求

来源:互联网 发布:C语言荷兰国旗问题 编辑:程序博客网 时间:2024/05/18 01:44

Http与服务器交互的不同方法

GET;POST;PUT;DELETE;HEAD;OPTIONS;TRACE;CONNECT;

浏览器中输入网址访问资源一般都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。
Http协议定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET、POST、PUT、DELETE。

URL全称是资源描述符,可以认为一个URL地址用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作

但是由于get;post;就可以完成以上的所有的操作。所以在早期开发web框架的时候只能实现post和get方式发出的http请求;

get与post的比较:

相同之处:

因为http请求是无状态的超文本协议。所以个get请求和post请求都是只能共享服务器放松一次请求。

不同之处:

就get和post设计的理念来讲,get只负责向服务发送查看的请求。也就是说,个体请求是不会使服务器产生变化,只是对服务器上内容的查看。get请求应该是幂等的,意味着对同一URL的多个请求应该返回同样的结果。

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


post请求则是对服务器的修改是可以改变服务器上的内容的。每次请求后都会对服务器产生相应的改变。

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

当然要说不同一定会谈到post,get的传值方式的不同。两者哪个方式传值的不同是因为请求的机制设定不同造成的。get是通过将参数放到url中传给服务器,这也会对请求的url产生一些限制和影响。而post则是将参数放到了HTTP包的包体中。就上所述,因为get将参数放到url中,而url本身长度也是有限制的,所以GET方式提交的数据最多只能是1024字节,而post请求参数是在报文中,所以理论上POST没有限制。

同样的因为get请求的参数是可见的,所以相对来说就是不安全的。每次发出get请求的时候,请求的url会被缓存在浏览器中,通过获得缓存中的url就可以解析出相应的参数。会对用户产生一些潜在的危险因素。


总结一下,一般来说向服务器请求数据用get请求。而向服务器提交数据用post请求。




1 0
原创粉丝点击