美文网首页WEB前端程序开发
图解HTTP协议摘要(春水版):第一章 web及网络基础

图解HTTP协议摘要(春水版):第一章 web及网络基础

作者: 天涯待归客 | 来源:发表于2020-03-17 10:48 被阅读0次

    关于图解HTTP协议摘要,全部内容上传到本人的Github,欢迎fork。

    1.0 目录

    1.1 使用http访问web
    1.2 http诞生
    1.3 TCP/IP协议
    1.3.1 TCP/IP协议分层
    1.3.2 TCP/IP通信过程
    1.4 HTTP相关的协议:IP、TCP、DNS
    1.4.1 IP协议
    1.4.2 可靠的TCP协议
    1.4.3 DNS服务
    1.5 URI

    1.1 使用http访问web

    客户端: 发送请求,获取服务器资源的web浏览器。

    客户端通过指定的访问地址获取服务器资源,或者上传资源到服务器。

    1.2 http诞生

    欧洲核子研究组织(CERN)的Dr. Tim Berners Lee提出World Wide Web,WWW有三项构建技术:

    • Standard Generalized Markup Language --> HyperText Markup Language

    • HyperText Transfer Protocol

    • Uniform Resource Locator

    HTTP协议以TCP/IP协议族为基础,TCP/IP 协议族包含了连个两个设备通信所涉及到的所有软硬件上的规则。

    1.3 TCP/IP协议

    1.3.1 TCP/IP协议分层

    TCP/IP协议分为四层:

    • 应用层
    • 传输层
    • 网络层
    • 数据链路层

    应用层决定了向用户提供应用服务时的通信活动。TCP/IP协议族内预存了各类通用的应用服务,比如File Transfer Protocol、Domain Name System、Hyper Text Transfer Protocol。

    传输层提供处于网络连接中的两台设备之间的数据传输。传输层有两个性质不同的协议:Transmission Control Protocol 和 User Data Protocol

    网络层处理网络上流动的数据包,它规定了数据包通过怎样的路径传送到对方计算机。数据包是网络传输的最小数据单位。

    数据链路层处理网络连接的硬件部分,包括控制操作系统,硬件设备的驱动,Network Interface Card,光纤等。硬件范畴上的东西都属于数据链路层。

    HTTP数据传输过程.jpg

    1.3.2 TCP/IP通信过程

    以HTTP通信为例:

    • 应用层将HTTP数据传送到传输层;
    • 传输层将HTTP报文进行分割,并打上标记序号、端口号,再转发到网络层;
    • 网络层增加通信目的地的MAC地址,并转发给数据链路层;
    • 数据链路层内将数据包发送到目的地,再向上传送到目的地的应用层。

    封装: 数据包向下层传输时,每经过一层都会加上该层所属的头部信息。

    1.4 HTTP相关的协议:IP、TCP、DNS

    1.4.1 IP协议

    IP协议:Internet Protocol 网络层,将source的数据包发送给destination。最重要的两个依据是:IP地址和MAC(Media Access Control Address)地址。

    IP地址是网络节点被分配到的地址,MAC地址是网卡所属的固定地址。IP地址会更改,但是MAC地址不会更改。

    ARP协议:网络中转时,使用ARP(Address Resolution Protocol)协议,通过MAC地址来查找目标的IP地址。

    1.4.2 可靠的TCP协议

    TCP协议在传输层,提供可靠的字节流服务:

    • 可靠意味着:TCP协议可以确认数据是否送达。
    • 字节流服务(Byte Stream Service):为了方便传输,将大块数据分割成以报文段为单位的数据包,方便传输和管理。

    为了可靠地传输,TCP协议采用了三次握手的策略(Three-way handshaking)。

    首先,发送端将带有SYN标识的数据包发送给接收方;然后,接收端回传一个带有SYN/ACK标识的数据包作为确认;最后,发送端发送一个带有ACK标识的数据包,代表握手结束。

    如果握手过程莫名中断,TCP协议下,发送端会再次以相同的顺序发送相同的数据包。

    1.4.3 DNS服务

    DNS协议和HTTP协议一样都在应用层。DNS提供域名和IP的双向查找服务。

    浏览器请求服务器资源过程.jpg

    1.5 URI

    URI(Uniform Resource Identifier),标识了网络上所有的资源,支持多种协议: http, ftp, telnet, file, mailto等。

    URL(Uniform Resource Locator),表明网络资源的位置,是URI的子集。

    绝对URI的格式:

    http://user:password@www.example.com:80/dir/index.html?uid=1#ch1
    

    格式说明:

    字段 说明
    http 协议名称(可以是程序或者脚本名称)
    user:password 登录信息
    www.example.com 服务器地址(可以是域名也可以是IP地址)
    80 端口号(省略则使用默认端口号)
    /dir/index.html 带层次的文件路径
    uid=1 查询字符串
    #ch1 片段标识符

    相关文章

      网友评论

        本文标题:图解HTTP协议摘要(春水版):第一章 web及网络基础

        本文链接:https://www.haomeiwen.com/subject/azmzehtx.html