• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •  引言与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小。因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中。手工做接口测试,测试数据和参数都可以由测试人员手动填写和更新。因此我们在考虑将接口用例实现自动化的时候,主要思路就是在单个接口请求的测试用例已经完成的前提下,我们如何解决以下问题:业务测试场景会调用不止一个接口,下一个接口的请求依赖于上一个接口的数据,需要解决接口依赖问题 token等鉴权数据有过期时间,多个接口用到该参数,需要解决一次修改,多处生效的问题 一个接口要用到多个测试数据做覆盖 批量测试下,需要知道某个接口返回的参数/数据是否符...
            13 11 2085
            分享
          • 软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验)。今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复!1、软件测试的流程是什么?分析:每当...
            1 0 4235
            分享
          •   日本国会已经完成了一项与欧盟非常相似的举措,即制定一项法律,禁止大型科技公司阻挡第三方应用程序商店的出现。该法案于 5 月在日本众议院获得通过,现在又于周三在参议院获得通过。根据现行程序,该法案无需经天皇签署即可成为法律。  该法案旨在促进竞争,降低应用程序价格。据报道,日本政府认为苹果和Google是双头垄断企业,它们向开发者收取高额费用,然后再转嫁给用户。  拥有应用商店的大型科技公司也将禁止公司优先使用自己的服务,Google可能受此打击最大。  违法者最初将被处以最高为违法具体服务国内收入 20% 的罚款。如果被罚主体放任这种行为持续下去,罚款可能会增加到 30%。  日本政府的公...
            0 0 175
            分享
          •   为了回馈广大用户对51Testing软件测试网的支持,我们准备了一份价值398元的测试实战课程礼包,只需填写下方链接的行业调查问卷即可免费领取~ 链接:http://vote.51testing.com/   随着公司微服务体系服务越来越多,业务增长越来越迅速,版本迭代越来越快,而且对系统的可用性要求越来越高,传统的手工发布系统的方式已经完全无法满足日常运维的需求了,自动化构建发布的需求越来越强烈,但是自动化发布有个基础的环境,自动化测试,鉴于团队规模不大,测试人员的能力参差不齐,自动化测试我们选择了以开发测试一起搭建的方式,通过轻量级的工具postman进行自动化测试。  测试文件共享 ...
            1 1 1769
            分享
          •   在江湖行走,尤其混迹于职场这片广阔天地时,总会有那么几句话飘荡在耳畔,如同魔咒般挥之不去,直戳心窝子。就像是下面这些金句,不论是在和学生们扯皮,还是在IT圈子里闲聊,甚至在饭桌上跟朋友们推杯换盏之间,它们都会时不时地冒出来刷一波存在感:  “哎呀,那家伙一天天划水摸鱼,正事没见干多少,结果一打听,人家工资竟然比我这个累死累活的老黄牛还高!”  “我们部门新来的毕业生愣头青一枚,啥都不会,全靠我手把手教,可笑的是他领的薪水几乎和我不相上下,这也忒不公平了吧!”  “我就纳闷了,我这儿拼死拼活干,职位比她还高,结果人家凭一张嘴皮子就把工资和绩效拿得比我漂亮多了,真让人憋屈得不行!”  乍一听,...
            0 0 217
            分享
      • 51testing软件测试圈微信