TCP/IP协议与HTTP协议概述

熟悉计算机网络的都知道OSI 七层网络结构图,由上至下:应用层 ;表示层 ;会话层 ;传输层 ;网络层 ;数据链路层;物理层;

参考网上一张图:

TCP/IP 的四层结构图分别是:应用层;传输层;网络层和数据链路层(网络接口层)。如下图是网上找到的一个图片显示了TCP/IP协议族的组成。通常使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于其内部的一个子集。

TCP/IP分层管理的好处:

  • 分层之后若需改变相关设计,只需替换变动的层。各层之间的接口部分规划好之后,每个层次内部的设计就可以自由改动。
  • 层次化之后,设计也变得相对简单。各个层只需考虑分派给自己的任务。

TCP/IP协议各层作用:

  • 应用层:决定了向用户提供应用服务时通信的活动,比如FTP(文件传输协议)、DNS(域名解析协议)和HTTP(超文本传输协议)。在这一层,数据的单位称为数据段(segment)。
  • 传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在这一层,数据的单位称为数据包(packet)。

    主要功能:

    ①:为端到端连接提供传输服务

    ②:这种传输服务分为可靠和不可靠的,其中TCP是典型的可靠传输,而UDP则是不可靠传输

    ③:为端到端连接提供流量控制,差错控制,服务质量(Quality of Service,QoS)等管理服务

    主要有两个性质不同的协议,TCP:传输控制协议,传输效率低,可靠性强;UDP:用户数据报协议,适用于传输可靠性要求不高,数据量小的数据(比如QQ)

  • 网络层:将数据传输到目标地址;目标地址可以是多个网络通过路由器连接而成的某一个地址,主要负责寻找地址和路由选择到达对方计算机,并把数据帧传送给对方,网络层还可以实现拥塞控制、网际互连等功能。

    网络层协议的代表包括:IP、IPX、RIP、OSPF等

  • 数据链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网卡),及光纤等物理可见部分。还包括连接器等一切传输媒介。在这一层,数据的单位称为比特。

利用TCP/IP进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端从链路层往上走。如下图所示:

 

HTTP协议:

HTTP协议采用请求/响应模式,用于客户端和服务端之间的通信。请求访问文本或是图像等资源的一端称为客户端,提供资源响应的一端称为服务器端。当服务器收到客户端的HTTP请求报文之后,会将其报文数据取获取到,并根据这个内容进行一些操作,然后将对应的响应数据封装到HTTP响应报文里面,再发回给客户端。如下图所示:

 

用于HTTP协议交互的信息被称为HTTP报文:

请求端的HTTP报文叫做请求报文,HTTP请求报文由请求行、请求头部、空行和请求包体4个部分组成。其中请求行由方法字段、URL字段和HTTP协议版本字段3个部分组成。

响应端的HTTP报文叫做响应报文,HTTP响应报文由状态行、响应头部、空行和响应包体4个部分组成。其中状态行由HTTP协议版本字段、状态码和状态码的描述文本3个部分组成,他们之间用空格分开。

HTTP报文可大致分为报文头部和报文主体两部分,并且头部里面都是”键值对”的方式表示的。

HTTP请求/响应的步骤:

  • 客户端连接到web服务器:HTTP客户端与web服务器建立一个TCP连接;
  • 客户端向服务器发起HTTP请求:通过已经建立的TCP连接,客户端向服务器发送一个请求报文;
  • 服务器接收HTTP请求并返回HTTP响应:服务器解析请求,定位请求资源,服务器将资源副本写到TCP连接,由客户端读取;
  • 释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
  • 客户端浏览器解析HTML内容,客户端将服务器响应的html文本解析并显示。

note

报文主体与实体主体的差异

  •    报文:HTTP通信中的基本单位,由8位组字节流组成,通过HTTP通信传输
  •    实体:作为请求或响应的有效载荷数据被传输,其内容由实体首部和实体主体组成。

HTTP报文的主体用于传输请求或响应的实体主体。通常,报文主体等于实体主体,只有当传输中进行编码操作时,实体主体内容发生变化,才导致它们产生差异。

note

HTTP是无状态的协议。(stateless)

所谓“无状态”是指服务端对于客户端每次发送的请求都认为它是一个新的请求,上一次会话和下一次会话没有任何联系。这个状态的主体指的应该是信息,这些信息是由服务端所维护的与客户端交互的信息(也称为状态信息), 因为HTTP本身是不保存任何用户的状态信息的,所以HTTP是无状态的协议。


补充一个概念:

无连接:每次连接只处理一个请求,服务端处理完客户端一次请求,等到客户端作出回应之后便断开连接。

持久链接:本质上是客户端与服务器通信的时候,建立一个持久化的TCP连接,这个连接不会随着请求结束而关闭,通常会保持连接一段时间。现有的持久连接类型有两种:HTTP/1.0+的keep-alive和HTTP/1.1的persistent。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值