美文网首页
HTTP学习系列(1)

HTTP学习系列(1)

作者: 我会有只猫的_2c34 | 来源:发表于2018-10-13 11:02 被阅读100次

    一直觉得自己的网络相关的知识非常薄弱,面试也会经常问到http。很有必要重新学习并且总结一下http相关知识。希望自己坚持下来,养成总结知识的习惯。这个系列将会通过《图解http》这本书以问答的形式总结自己的学习成果。

    目录如下:

    • 网络基础
    • HTTP基础
    一.网络基础

    1.TCP/IP协议族
    TCP/IP是通信过程中用到的协议的统称。由传输层的TCP协议和网络层的IP协议组成。TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
    HTTP属于TCP/IP的一个子集。

    2.TCP/IP协议族的分层管理
    TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
    应用层
    应用层决定了向用户提供应该服务时通信的活动。
    TCP/IP协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名系统)服务就是其中的两类。HTTP协议也处于该层。

    传输层
    传输层对上层应用层,提供处于网络连接中两台计算机之间的数据传输。
    在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)。

    网络层(又名网络互连层)
    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
    与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的所用就是在众多的选项内选择一条传输路线。

    链路层(又名数据链路层,网络接口层)
    用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

    3.TCP/IP通信传输流 785686-20160201223112616-1937529463.jpg

    发送端在层与层之间传输数据时,经过每一层都会打上一个首部信息进行封装;反之,接收端在层与层传输数据时,没经过一层都会把相应的首部信息消去。

    4.与HTTP相关的协议简介

    • IP协议
      IP协议位于网络层,作用是发送端的数据通过数据包的形式传送给接收端。具体流程可参考如下博文:传送门
    • TCP协议
      TCP协议位于传输层,提供可靠的字节流服务。采用的策略当然就是三次握手了。


      三次握手.jpg
    • DNS服务
      和HTTP协议同样位于应用层,提供将域名到IP地址的解析服务。

    5.URI和URL
    URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
    Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
    URI一般由三部组成:
    ①访问资源的命名机制
    ②存放资源的主机名
    ③资源自身的名称,由路径表示,着重强调于资源。

    URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
    URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
    采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL一般由三部组成:
    ①协议(或称为服务方式)
    ②存有该资源的主机IP地址(有时也包括端口号)
    ③主机资源的具体地址。如目录和文件名等
    URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI子集。

    二. HTTP基础

    1.概述
    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。


    http请求-响应模型.jpg

    2.HTTP特点

    • 无状态
      http协议没法保存客户机信息,也就没法区分每次请求的不同之处。关于http无状态阻碍了交互式应用程序的实现。比如记录用户浏览哪些网页、判断用户是否拥有权限访问等。于是,两种用于保持HTTP状态的技术就应运而生了,一个是Cookie,而另一个则是Session。
    • 无连接(http1.0)
      无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
      HTTP/1.0中,每对请求/ 响应都使用一个新的连接。
      HTTP/1.1则支持持久连接(默认)。

    3.HTTP请求的方法


    http请求方法.jpg

    4.http持久连接
    在1.0版本中没进行一次通信,tcp就要重复执行断开和连接,增加了通信量的开销。
    为了解决这个问题http1.1采用了持续采用了持久连接的方法。即只要一段没有明确提出断开连接,则TCP一直保持连接状态。

    • 管线化
      持久连接是的管线化发送方式变得可能。即不用发送一个请求后等待响应再发送下一个,能并行发送多个请求。

    5.使用cookie管理状态

    Session管理及Cookie状态管理.jpg
    详细介绍可参考:传送门

    相关文章

      网友评论

          本文标题:HTTP学习系列(1)

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