<返回更多

程序员和IT人都应该懂的知识:HTTP入门图解

2020-02-16    
加入收藏

了解 Web 及网络基础

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

对端传输

发送端在层与层间传输数据时,没经过一层都会被加上首部信息,接收端每经过一层都会删除一条首部

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

多种协议作用

IP 协议,TCP 协议和 DNS 服务在使用 HTTP 协议过程中发挥的作用

简单的 HTTP 协议

请求报文和响应报文

客户端像服务器发起请求时会生成一段请求报文,请求报文是由请求方法,URL,协议版本,可选的请求首部字段和内容实体构成。

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

请求报文

接收到请求的服务器,会将请求内容的处理结构以响应的形式返回。响应报文基本上由协议版本,状态码,用以解释状态的原因短语,可选的响应首部字段以及实体主体构成。

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

响应报文

 

HTTP 是不保存状态的协议和 Cookie 的简单介绍

HTTP 协议对于发送的请求和响应不做持久化处理。这时候引入了 Cookie 技术用于状态管理。Cookie 对用与登录的状态管理,没有 Cookie 这个技术的话,因为 HTTP 不保存状态,每次打开新网页都必须再次登录。

Cookie 会根据响应报文中的 Set-Cookie 字段来通知客户端自动保存 Cookie。下次请求时会自动发送 Cookie,服务器会比对数据得到状态结果。

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

先引入副作用和幂等的概念。

副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的。

幂等指发送 M 和 N 次请求(两者不相同且都大于1),服务器上资源的状态一致。注册10个和11个帐号是不幂等的,对文章进行更改10次和11次是幂等的。

在规范的应用场景上说,Get 多用于无副作用,幂等的场景,例如搜索关键字。Post 多用于副作用,不幂等的场景,例如注册。

在技术上说:

常见状态码

 

程序员和IT人都应该懂的知识:HTTP入门图解

 

常见状态码

 

2XX 成功

3XX 重定向

4XX 客户端错误

5XX 服务器错误

HTTP 首部

通用首部

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

请求首部字段

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 的几次握手和加密解密的运算处理,但是加密解密的运算处理已经可以通过特有的硬件来加速处理。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>