post与get

作者: zenggo | 来源:发表于2016-07-01 14:44 被阅读150次

区别

  • get表达的是一种幂等的,纯粹的只读操作,即它除了返回结果不应该会产生其它副作用(如写数据库)。因此绝大部分get请求(通常超过90%)都直接被CDN缓存了,这能大大减少web服务器的负担。
  • 而post所表达的语义是非幂等的,可能进行增删改的操作,所以必须交由web服务器处理。
    注意它们只是表达上的不同,强调语义。用get来传输要插入的数据,用post来传输要查询的数据标识都是可以的,只要请求打到了服务器上,管你是post还是get,怎么处理是服务器的事

post

  • 一个最简单的用户名密码表单提交通常会会发送post request,请求头是这样的:


    Paste_Image.png

指明方法为post,还有实体头部信息包含请求体的内容长度与类型(x-www-form-urlencoded表示数据被编码为名称/值对,这是标准的编码格式。)。这是请求体:uname=&pwd=&sbt=%E6%8F%90%E4%BA%A4, 乱七八糟那部分就是‘提交’中文二字的utf-8编码。PS:若是传统表单按钮<input type="submit">提交,则会把提交按钮的value加入请求体。

有时post请求的content-type并非form格式数据,还可以是json格式数据。例如$.ajax()可以指定

$.ajax({
...
contentType: "application/json; charset=utf-8",  dataType: "json",  
data: JSON.stringify(obj)
...});

此时请求体:{"uname":"","pwd":""} 。

POST 是否比 GET 安全

POST要比GET安全一点点。。。两者都是明文传送,但是GET的URL会被放在浏览器历史和WEB 服务器日志里面,query会被记录;而POST 发完基本就木有了。所以如果关键数据放在GET里面,被人偷窥了浏览器,或者WEB服务器被入侵日志被人倒去了,基本泄露可能性100%。而POST来说,日志没有记录,只要数据库服务器不被入侵,基本还是安全的。
当然如果被抓了包,这一切都没有什么卵用,所以,HTTPS该用还是得用。

使用准则

  • 可以重复的交互,比如取个数据,跳个页面, 用GET
  • 不可以重复的操作, 比如创建一个条目/修改一条记录, 用POST, 因为POST不能被缓存,所以浏览器不会多次提交。

参考:post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?

相关文章

  • post And get

    post And get post 与 get 请求的区别: 相同点:post和get都属于tcp协议传输。 po...

  • Http(二)

    一、GET与POST请求 POST也可以跟GET一样获取到资源(图片) GET获取图片—— POST在html中可...

  • AJAX

    创建 XMLHttpRequest 对象 向服务器发送请求 GET 还是 POST? 与 POST 相比,GET ...

  • Class 1

    GET & POST & PUT & DELETE: 浅谈HTTP中Get与Post的区别 - hyddd - 博客园

  • GET与POST的区别?

    作者:Gakki 我们先来看看 w3school 中对于 GET 与 POST 的解释。 GET 与 POST ...

  • Postman使用

    get与post区别 restful

  • GET表单提交/POST表单提交/数据交互/ node 垃圾回收

    GET表单提交 POST表单提交 同时处理get与post请求 数据交互 HTML 数据库 扩展

  • GET与Post的区别

    *GET与Post的区别================重点*****======================

  • GET 与 POST 的区别

    iOS 中的GET 与 POST 的区别 : 1.POST 需要明确制定方法 GET不需要 ,并且默认就是GET...

  • 网络

    计算机网络: 1、GET与POST区别: 参数:GET在URL中,POST在request body中接收:GET...

网友评论

    本文标题:post与get

    本文链接:https://www.haomeiwen.com/subject/mwvfjttx.html