美文网首页
POST和GET的区别(转载)

POST和GET的区别(转载)

作者: Stephen_Huang | 来源:发表于2018-11-23 15:32 被阅读0次

先引入副作用和幂等的概念。
副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的。
幂等指发送 M 和 N 次请求(两者不相同且都大于1),服务器上资源的状态一致。注册10个和11个帐号是不幂等的,对文章进行更改10次和11次是幂等的。
在规范的应用场景上说,Get 多用于无副作用,幂等的场景,例如搜索关键字。Post 多用于副作用,不幂等的场景,例如注册。
在技术上说:

Get 请求能缓存,Post 不能
Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,且会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
Post 可以通过 request body来传输比 Get 更多的数据,Get 没有这个技术
URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的
Post 支持更多的编码类型且不对数据类型限制

HTTP 首部
通用首部
指请求报文和响应报文都可以使用的字段

Cache-Control
no-cache 指客户端不缓存过期资源
no-store 指不进行缓存
max-age 指缓存资源的缓存时间比指定的值小,那么客户端就接受缓存资源,且缓存服务器不对资源有效性进行再次确认

Connection 指控制不再转发给代理的首部字段(Hop-by-hop),管理持久连接
close 指服务器像明确断开连接
Keep-Alive 指保存持久连接,HTTP/1.1前默认连接是非持久性的,如需要保存持久连接,需要增加此字段

Upgrade 可以用来指定一个完全不同的通信协议,对于这个字段,服务器可以返回101状态码

请求首部字段

Accept 指用户代理能够处理的媒体类型及媒体类型的相对优先级
Accept-Encoding 指用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序
Authorization 指用来告知服务器,用户代理的认证信息
Host 当一个 IP 下存在多个域名时,帮助服务器知道要请求的具体主机
User-Agent 会讲创建请求的浏览器和用户代理名称等信息传达给服务器

HTTPS

HTTPS 是 HTTP 建立在 SSL/TLS 安全协议上的。

在 iOS 中,客户端本地会存放着 CA 证书,在HTTPS 请求时,会首先像服务器索要公钥,获得公钥后会使用本地 CA 证书验证公钥的正确性,然后通过正确的公钥加密信息发送给服务器,服务器会使用私钥解密信息。

SSL/TLS握手阶段分为五步:
以下引自 阮一峰的网络日志
第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。
第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。
第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。
第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。
第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。

HTTPS 相对于 HTTP 性能上差点,因为多了 SSL/TLS 的几次握手和加密解密的运算处理,但是加密解密的运算处理已经可以通过特有的硬件来加速处理。

相关文章

  • POST和GET的区别(转载)

    先引入副作用和幂等的概念。副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的。幂等指发送 M 和 N...

  • HTTP

    get和post请求的区别 GET参数通过URL传递,POST放在Request body中。GET比POST更不...

  • post And get

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

  • 简述GET与POST的区别与联系

    转载滴:出处:99%的人都理解错了HTTP中GET与POST的区别99%的人都理解错了HTTP中GET与POST的...

  • API Test-基础知识

    1、接口测试的类型:get/post/delete/put 2、post和get的区别: a、get参数写在...

  • http协议,tcp/udp汇总

    GET和POST请求方式的区别? get获取数据,post发送数据 get拼接URL后面,post参数放在body...

  • 实现异步请求的方法

    原生ajax写法: 请求方式:get,post,head,delete,get和post的区别 get将请求的参数...

  • 这份PHP面试题,我只挑重点,且很详细

    基础篇 1 Get 和 POST 的区别 表单提交中get和post方式的区别有5点 get是从服务器上获取数据,...

  • URLConnection以post方式提交数据

    post请求跟get请求的区别 一 ☆☆☆☆☆☆☆和get方式提交数据 区别 路径不同 二 ☆☆☆☆☆☆☆和get...

  • POST和GET的区别

    Post和Get请求的区别GET和POST是HTTP请求的两种基本方法,最直观的区别就是GET把参数包含在URL中...

网友评论

      本文标题:POST和GET的区别(转载)

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