图解HTTP(1)

最近在阅读图解http这本书,之前一直觉得http(s)这部分内容可以说是在工作中天天接触,但对其中的诸多细节不是很了解,而且面试时这部分内容也是会被经常问到,作为检验前端基础知识的重要考点。

一、了解Web及网络基础

使用http协议访问Web

我们是否想过,当我们在Web浏览器的地址栏中输入URL时,页面是如何呈现的?
Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器等一系列运作流程。而协议即是规则的约定,可以说,Web是建立在HTTP协议上通信的

网络基础TCP/IP

通常使用的网络是在TCP/IP协议族的基础上运作,而HTTP属于它内部的一个子集!
图解HTTP(1)_第1张图片
TCP/IP协议族

计算机与网络设备要相互通信,双方就必须要基于相同的方法,如规定如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。

TCP/IP的分层管理

TCP/IP协议按层次分为4层, 引用层、传输层、网络层、数据链路层,分层的目的是单元化、独立解耦、层与层之间通过接口连接

  • 应用层:决定了向用户提供应用服务时通信的活动。其中常见的HTTP、FTP、DNS协议就处于该层。
  • 传输层:提供与处于网络连接中的两台计算机之间的数据传输,即端对端的网络接口。TCP(传输控制协议)和UDP(用户数据协议)协议处于其中。
  • 网络层:为数据包选择路由。用来处理网络上流动的数据包。数据包是网络传输的最小数据单位,该层规定了通过怎样的传输路线将数据包传输给对方计算机。
  • 链路层: 用来处理连接网络的硬件部分


    图解HTTP(1)_第2张图片
    TCP/IP网络模型
TCP/IP传输流

利用TCP/IP协议族进行网络通信的时候,会通过分层顺序与对方进行通讯,发送端从应用层往下走,接收端从链路层往上走。接着,为了传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层增加作为通信目的地的MAC地址后转发给链路层。
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层


图解HTTP(1)_第3张图片
图片3.png
传输过层中的IP、TCP、DNS
  • DNS: 负责域名解析,和HTTP协议一样位于应用层,提供域名到IP地址之间的解析服务。
  • TCP: 位于传输层,提供可靠的字节流服务,确保数据传输的可靠性。这里的字节流是指将大段数据分割成以报文段为单位的数据包,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确实数据是否送达到对方。

    为了准确将数据送到目标出, TCP协议采用三次握手策略。首先发送端会发送一个带有SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息,最后发送端再回传一个带有ACK标志的数据包代表握手结束。
    图解HTTP(1)_第4张图片
    image.png

    IP:负责传输的IP协议。按层次分IP(Internet Protocol)协议位于网络层.IP协议的作用是把各种数据包传送给对方,而要保证确实传送到对方那里,则需要满足各种条件,其中比较重要的两个是IP地址和MAC地址,IP地址指明节点被分配到的地址,MAC地址是网卡所属的固定地址。IP地址可以和MAC地址进行配对,IP地址可变换,但MAC地址一般不会改变。
URI和URL

URI:Uniform Resource Identify统一资源标识符,有某个协议方案表示的资源的定位标识符。
URL: Uniform Resource Locator 统一资源定位符,表示资源的地点(互联网上所处的位置)
URL是URI的子集

你可能感兴趣的:(图解HTTP(1))