• 1
  • 2
分享

今天整理了HTTP及HTTPS协议原理及流程,

主要体现在: 言简意赅,一言中的,最主要的可以 看图识字;

1、HTTP协议

1.1 协议

定义

一种分布式、协作式,面向应用层的超媒体信息系统

特点

一种通用的、无状态(stateless) 的协议

表现形式

可输入的和可协商性的,允许系统能被建立而独立于数据传输

应用场景

应用于 超文本传输,名称服务器和分布对象管理系统等

1.2 原理

1.2.1 客户端

主要职能

一个向服务器发送请求;

接收服务器返回的报文并解析成友善的信息提供给我们阅读;

应用类型

    浏览器

    桌面应用,app应用

1.2.2 服务器端

处理接收客户端发来的请求过程

        ①建立链接

        如果客户端已经打开一条到服务器的持久链接,则可以直接使用,否则客户端需要在服务器打开一条新的链接;

        ②接收请求报文

        链接上有数据时,Web服务器会从网络链接中读取数据,并将请求报文的内容解析出来;

        ③处理请求

        当请求被接收和表示后,服务器可根据请求报文进行处理;

        ④访问资源

        请求处理完成后,就开始访问这些存储在服务器上的物理文件;

        ⑤构建响应

        服务器识别资源后,构造响应报文

        ⑥发送响应

        服务器将响应发送给客户端

        ⑦记录日志

        请求结束,Web服务器会生成一条记录

1.3 请求报文

1.3.1 报文格式

Request报文结构,3部分组成

        请求行(request line)

        请求头部(header)

        主体(body)

1.3.2 请求报文方法

常用请求报文方法:

        GET:获取资源

        POST:传输实体主体

        PUT:传输文件/更新资源

        DELETE:删除资源

        HEAD:获取报文首部(同GET,只是不返回主体)

        OPTIONS:咨询支持的方法(查询针对URL指定资源)

        TRACE:追踪路径(让Web服务将之前请求通信环回给客户端方法)

        CONNECT:要求用隧道协议链接代理(与代理间建立隧道,实现用隧道协议进行TCP通信)

        更多请求方法,可参照小鱼的《HTTP常用方法》这篇博文。        

1.4 响应报文

1.4.1 报文格式

Request报文结构,3部分组成

    响应状态(response code)

    响应头(response header)

    响应主体(response body)

1.4.2 响应报文状态码

响应报文状态码,分5类:

        1xx:信息状态码

        2xx:成功状态码

        3xx:重定向状态码

        4xx:客户端错误状态码

        5xx:服务器错误状态码

详细的状态码信息,可参照小鱼的《HTTP状态码总结》这篇博文。

2、HTTPS协议

2.1 加密算法

对称加密

    采用单一钥匙加密方法,即同一个钥匙既可以加密也可以解密。

非对称加密

    需要公钥和私钥同时出现,即如果公钥是加密,私钥就是解密。

2.2 数字签名

数字签名

    ①是只有信息的发送者才能产生的别人无法伪造的一段数字串,

    ②这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明

2.3 传输过程

共分7步,如下:

        步骤一、客户发起HTTPS请求;

            —>浏览器里输入https://xxxxxx 

        步骤二、服务器端初步响应;

            —>采用HTTPS协议的服务必须有一套数字证书(就是公钥和私钥);        

        步骤三、客户端解析证书;

            —>验证证书是否有效,是否合法,包含网站地址与正在访问地址一致等           

        步骤四、客户端发送加密信息

            —>客户端发送的是用证书加密后的公钥        

        步骤五、服务器解密信息

            —>服务器用公钥解密后,得到客户端传来的公钥,然后把内容通过该值进行对称加密        

        步骤六、服务器发送加密后的信息

            —>服务器发送用公钥进行对称加密的信息        

        步骤七、客户端解密信息

            —>客户端用之前生成的私钥解密服务器端传过来的信息,客户端就获取的解密后的内容

2.4 流程图

1.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、外汇基本的内容  银行的海外支付清算中,一般以外汇交易为主。外汇这个词,是很多人,特别是做投资行业、有亲朋好友在国外的人都有接触过,但它是怎么被定义的,有什么样的特点,它的作用是什么......,相信很多小伙伴对这些都不大了解。本文就来聊聊关于外汇的相关内容。要了解银行海外支付业务之前,我们需要先了解一些基本的知识。  1、外汇的概念  它是国际贸易的产物,是国际贸易清偿的支付手段。它分为动态和静态这两种方式。  从动态上讲,外汇就是把一国货币转换成另一国货币,并在国际间流通用以清算因国际经济往来而产生的债权债务。  从静态上来说,外汇是表现为进行国际清算的手段和工具。  2、外汇的特...
            0 0 569
            分享
          •   简介  在如何有效地测试Go代码一文中,我们谈论了单元测试,针对它的两大难点:解耦、依赖,提出了面向接口、mock 依赖的解决方案。同时,该文还讨论了一些 Go 领域内的实用测试工具,欢迎读者阅读。单元测试关注点是代码逻辑单元,一般是一个对象或者一个具体函数。我们可以编写足够的单元测试来确保代码的质量,当功能修改或代码重构时,充分的单元测试案例能够给予我们足够的信心。单元测试之上是开发规范。在敏捷软件开发中,有两位常客:测试驱动开发(Test-Driven Development,TDD)和行为驱动开发(Behavior-driven development,BDD)。它们是实践与技术,同...
            0 0 925
            分享
          •   Roblox 已经加入了一长串公司的行列,这些公司告诉员工,他们需要每周至少回办公室工作三天。与亚马逊一样,这家游戏公司也给员工下了最后通牒:要么回去上班,要么另谋高就。Roblox 的创始人兼首席执行官大卫-巴斯祖基(David Baszucki)在发给员工的一封电子邮件中公开宣布了这一消息。  他写道,到明年夏天,随着公司从远程工作转型,一些远程员工将被要求从位于圣马特奥的 Roblox 总部开始工作。  与大多数其他组织一样,Roblox 将采用每周三天(周二至周四)的混合工作制。  事与愿违的是,大多数人都反对回到办公室工作;调查显示,大量员工宁愿离职,也不愿停止在家全职工作。  ...
            0 0 839
            分享
          •   今天,我们来聊聊如何成为一枚初级测试工程师?  最近经常收到小伙伴的私信问打算进入到互联网这个行业,如何转行软件测试?学测试难吗?以及谈到自己非计算机科班毕业,半路转行没什么经验,比较迷茫,不知道学习路线,以及需要学习哪些课程。甚至询问是否需要报个培训班学习,自学就可以吗,还是必须报班等问题。  首先我想说,初级软件测试学习和入门的门槛都是很低的,比起开发岗位来说,要容易得多,只要知道学习路线以及怎么学之后,自学是完全可以入行的。所以,今天就来跟大家探讨一下这个问题。  我浏览了 BOSS 直聘、拉勾网、猎聘网等招聘网站上目前关于初级测试工程师的招聘要求,以及薪水待遇等信息。以本人所在的城...
            0 0 455
            分享
          •       前言:想知道jmeter压测的原理是什么,得先知道性能测试的核心三原则:基于协议,多线程,场景模拟!      基于协议:基于应用层和传输层的各种协议。比如http,udp,ftp,tcp等      多线程:通过进程下启动线程的方式来模拟并发用户实现负载      场景模拟:通过模拟用户使用的真实场景,来提高性能测试的准确性      jmeter压测的核心原理就是:基于各种协议,通过多线程的...
            0 0 2241
            分享
      • 51testing软件测试圈微信