• 【图解Http 学习摘要】一、http介绍、TCP/IP 协议族


    前言

    翻阅【图解http】这本书,学习http,记录摘要。

    学习目的就不用多说了,作为测试人员接触最多的就是web、http,多写了解,只有好处没有坏处。

    此外,这一项是面试高频问题,比如:输入URL看到网页,背后经历什么、三次握手、四次挥手介绍一下?

    如果你现在说不上来,那么还是建议花点时间去学习了解一下。

    另外,很多大厂的jd里对此也有着明确的要求。

    图里还圈了一下 leetcode,如果要面大厂,在线做题是必考项了。对于测试人员来说,可以刷刷 LeetCode 上简单难度即可。

    一、HTTP 介绍

    HTTP (全称 HyperText Transfer Protocol),是一种协议,叫超文本传输协议

    我们在使用浏览器访问web的时候,正是基于了这种协议,完成了从客户端到服务器端的一系列运作流程,也就是说,web是建立在http协议上通信的。

    1. http的诞生

    起初,互联网还只属于少数人,这时候互联网处于黎明期,1989年3月,HTTP 诞生。

    先驱者们最初的设想是:借助多文档之间相互关联形成的超文本(HyperText),连成可以互相参阅的WWW(World Wide Web),即万维网

    关于WWW,有3项构建技术:

    • HTML:把 SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言。
    • HTTP:作为文档传递协议。
    • URL:统一资源定位符(Uniform Resource Locator)。

    WWW 这个名称,是web浏览器当年用来浏览超文本的客户端应用程序时的名称。现在,则用来表示这一系列的集合,也可以简称为 Web。

    2. http的成长

    • HTTP/0.9:http于1990年问世,那时候还没有作为正式的标准,所以就代表 HTTP/1.0 以前的版本。
    • HTTP/1.0:1996年5月,http正式作为标准,版本命名为 HTTP/1.0。
    • HTTP/1.1:1997年1月公布,是目前主流的http协议版本。

    新一代的 HTTP/2.0 正在制定中,但是要达到较高的使用覆盖率,还需要一定的时间。

    二、TCP/IP 协议族

    在进一步了解http之前,还有必要先了解下 TCP/IP 协议族。因为我们通常使用的网络是在 TCP/IP 协议族的基础上运作的。

    1. 什么是 TCP/IP 协议族

    计算机与网络设备相互通信,双方就要基于相同的方法,遵循一种规则,这种规则就可以称为 协议(protocol)。

    但是在协议中内容有很多,从电缆规格到 IP地址 选定方法、寻找异地用户的方法、双方建立通信的顺序等等。

    于是,把这些与互联网相关联的协议集合起来,总称为 TCP/IP。

    2. TCP/IP 通信传送过程

    TCP/IP 协议族里重要的一点就是分层。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动,设计也变得相对简单了。

    • 应用层:决定了向用户提供应用服务时通信活动。http 协议就处于该层。
    • 传输层:提供处于网络连接中的两台计算机之间的数据传输。TCP 传输控制协议 就处于该层。
    • 网络层:处理网络上流动的数据包。IP 就处于该层。
    • 链路层:处理网络连接的硬件部分。比如:硬件的设备驱动、网络适配器、网卡、光纤等物理可见部分。

    利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。

    发送端从应用层往下走,接收端则往应用层往上走。比如,现在向一个地址发送请求,想看到web页面:

    1. 发送 http 请求。
    2. 为了传输方便,在传输层(TCP 协议)把从应用层处收到的数 据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
    3. 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链 路层。
    4. 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。

    每层打标
    发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该 层所属的首部信息。

    反之,接收端在层与层传输数据时,每经过一层 时会把对应的首部消去。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    JavaScript定时器及相关面试题
    单线程JavaScript
    webpack基础入门
    SQL Server 服务器器信息备份(二)--权限备份
    SQL Server 服务器器信息备份(一)--login新建脚本备份
    Raid与DAN、SAN、NAS基础
    AlwaysOn可用性组功能测试(三)--其他测试
    AlwaysOn可用性组功能测试(二)--SQL Server群集故障转移对AlwaysOn可用性组的影响
    AlwaysOn可用性组功能测试(一)--AlwaysOn故障转移测试
    AlwaysOn可用性组测试环境安装与配置(一)--SQL群集环境搭建
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14967788.html
Copyright © 2020-2023  润新知