精选文章 HTTP解析

HTTP解析

作者:JustSleep 时间: 2020-07-27 12:38:33
JustSleep 2020-07-27 12:38:33

1、超文本传输协议

HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。

HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点里。

2、GET 和 POST

Get 方法的含义是请求从服务器获取资源,这个资源可以是静态的文本、页面、图片视频等。

POST 方法则是相反操作,它向 URI 指定的资源提交数据,数据就放在报文的 body 里。

GET 和 POST 方法都是安全和幂等的吗?

  • 在 HTTP 协议里,所谓的「安全」是指请求方法不会「破坏」服务器上的资源。

  • 所谓的「幂等」,意思是多次执行相同的操作,结果都是「相同」的。

GET 方法就是安全且幂等的,post既不安全也不幂等

3、http特性

1)简单

2)灵活和易于扩展

3)应用广泛和跨平台

缺点:

无状态、明文传输、不安全

4、http1.1改进

1)长连接 

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态

2)管道网络传输

即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

3)队头阻塞

5、HTTP 与 HTTPS

  1. )HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。

  2. )HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。

  3. )HTTP 的端口号是 80,HTTPS 的端口号是 443。

  4. )HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

5、http风险以及解决

窃听风险、篡改风险、冒充风险

HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议。

  • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。

  • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。

  • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。

如何实现?

  • 混合加密的方式实现信息的机密性,解决了窃听的风险。HTTPS 采用的是对称加密非对称加密结合的「混合加密」方式。

  • 摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。

  • 将服务器公钥放入到数字证书中,解决了冒充的风险。

6、SSL/TLS 协议基本流程:

  • 客户端向服务器索要并验证服务器的公钥。

  • 双方协商生产「会话秘钥」。

  • 双方采用「会话秘钥」进行加密通信。

7、SSL/TLS 协议具体流程:

首先,由客户端向服务器发起加密通信请求,也就是 ClientHello 请求。

服务器收到客户端请求后,向客户端发出响应,也就是 SeverHello

客户端收到服务器的回应之后,首先通过浏览器获得服务器 CA 公钥,确认服务器的数字证书的真实性。如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送信息。

服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。然后,向客户端发生最后的信息。

注意:私匙是用来对公匙加密的信息进行解密的,是需要严格保密的。

           公匙是对信息进行加密,任何人都可以知道。所以这里的私匙和公匙利用了非对称加密。

           使用两者互相发送请求时产生的随机数,计算出一个对称加密的密匙,以此作为加密信息并发送。

总结:使用非对称协议加密对对称协议加密密匙的加密,并使用对称加密协议,进行信息的加密。

 

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:leetcode_58 Jump Game IV

下一篇:Spring bean的加载过程源码分析

您可能感兴趣

  • SIP语音环境中十大经典问题及解决办法

    在VOIP的环境中,特别是基于SIP通信的环境中,我们经常会遇到一些非常常见的问题,例如,单通,30秒就断线,注册问题,回声等。这些问题事实上都有非常直接的排查方式和解决办法,用户可以按照一定的排查方式,工具非常高效地解决这些问题。但是,因为读者技术水平参差不齐,网络上的很多技术也不完整。笔者今天系统归纳了这些问题。根据一些用户的使用环境和用户经常遇到一些问题,我们列举了以下十个在SIP呼叫...

  • HIDL详解-Android10.0 HwBinder通信原理(二)

    摘要:本节主要来讲解Android10.0 HIDL相关知识 阅读本文大约需要花费18分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! [Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎...

  • SpringMVC框架的入门学习01

    SpringMVC的基本概念 关于三层架构和MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以很多案例也都是基于三层架构设计的。...

  • .NET Core:通过Web API进行微服务交互

    目录 介绍 命名协议 MicroCommerce应用程序结构 MicroCommerce应用开发 1.接口项目,微服务接口和模型类 2. ProductCatalog项目 3. ShoppingCart项目 4. ActivityLogger项目 5. WebUI项目,用户界面 6.关于通用功能的几句话 应用测试 结论 缺点 下载源代码26.3 KB 介绍 几乎所有在.NET Core中使用...

  • centos6下安装kong

    环境:centos6.6 cat /etc/redhat-release 1.postgresql9.5安装 1.1下载 http://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6.6-x86_64/ 1.2安装 sudo yum install -y https://download.postgresql.org/pub/r...

  • asp.net c# 打开新页面或页面跳转

    1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write(" "); 3.原窗口保留再新打开另一个页面(浏览器可能阻止,需要解除):Response.Write(" "); 4.效果同1中的另一种写法:Response.Write(" "); 5.也是原窗口被替代的 (常用于传递se...

  • MemCache详细解读

    本节内容主要关于mencache的工作原理,memcache的应用场景及其应用实例配置,memcache安装部署。 一、Memcached工作原理 1.服务端缓存实现 (1)memcached特性 分布式: 实例和缓存在逻辑上是分离的 普通缓存 Memcached缓存 特 性 缓存与特定的应用实例绑定,每个应用实例只能访问特定的缓存 实例独立于各个应用服务器实例运行,每应用实例可以访问任意缓...

  • HTML5和WAP的联系与区别!

      随着时代的快速发展,移动互联网加速来临,有越来越多的热门技术被人们提及和应用。虽然人们对于HTML5大前端、大数据、云计算、等热门IT技术热情不减,但对于技术与技术之间的区别以及具体生活的应用了解的还不是十分详细。今天,就让我们以HTML5大前端为例,具体讲解一下移动互联网时代下HTML5大前端和WAP之间的区别与联系。   首先,从定义上区分。HTML5的全称是“超文本标记语言”,它是...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。