JAVAEE和项目开发_网络协议

本文深入介绍了计算机网络协议,包括TCP/IP协议群、TCP和UDP的特点、应用层协议如HTTP、FTP、SMTP等。讲解了TCP的三次握手和四次挥手,以及服务端口的作用和分配。HTTP协议的请求-响应模式、特点和版本演进被详细阐述,同时讨论了HTTP中URI、URL和URN的区别。此外,还涵盖了HTTP请求头和响应头的关键信息,以及常见的HTTP状态码。
摘要由CSDN通过智能技术生成

一、网络协议详解

主要内容
计算机协议内容
TCP/IP协议群
TCP传输特点
服务端口
数据包与处理流程
HTTP协议详解
学习目标
在这里插入图片描述

一、计算机协议介绍

1 什么是协议

简单来说,协议就是计算机之间通过网络实现通信时事先达成的一种“约定”;这种“约定”使那些由不同厂商的设备,不同cpu及不同操作系统组成的计算机之间,只要遵循相同的协议就可以实现通信。
协议可以分很多种,每一种协议都明确界定了它的行为规范:2台计算机之间必须能够支持相同的协议,并且遵循相同的协议进行处理,才实现相互通信。

2 协议的标准化

计算机通信诞生之初,系统化与标准化未受到重视,不同厂商出产各自的网络来实现通信,这样就造成了对用户使用计算机网络产生了很大障碍,缺乏灵活性和可扩展性。为解决该问题,国际化标准组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的 通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、 网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层 (Presentation Layer)、应用层(Application Layer)。
在这里插入图片描述
除了标准的OSI七层模型以外,常见的网络层划分还有TCP/IP 四层协议以及TCP/IP 五层协议,它们之间的对应关系如下图所示:
在这里插入图片描述

二、TCP/IP 协议群

1 什么是TCP/IP协议群

从字面意义上讲,有人可能会认为TCP/IP 是指TCP和IP两种协议。实际生活中有时也确实就是指这两种协议,然而在很多情况下,它只是利用IP 进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP 协议。他们与TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP一词泛指这些协议,因此,有时也称TCP/IP 为网络协议群。
在这里插入图片描述

2什么是应用协议

应用协议是定义了运行在不同系统上的应用程序进程如何相互传递报文的协议。
常见的应用协议:

2.1 TELNET协议

TCP/IP 协议中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力,Telnet是常用的远程控制web服务器的方法。

2.2 FTP协议

文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层,即应用层,FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。

2.3 HTTP协议

一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

2.4 SNMP协议

简单网络管理协议,专门设计用于在IP网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。

2.5 SMTP协议

一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接受者(在大多数情况下被确认是存在的),然后消息文本会被传输。

2.6 DNS协议

DNS(Domain Name System,域名系统),万维网上作为域名和 IP 地址相互映射的一个 分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接知读取的 IP 地址。

3什么是传输协议

传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,是应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

3.1TCP 协议

TCP:(Transmission Control Protocol)传输控制协议,TCP 是一种面向连接的、可靠的、基 于字节流的传输层(Transport layer)通信协议。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众 多功能。

3.2UDP 协议

UDP:(User Datagram Protocol)的简称, 是不具有可靠性的数据报文协议。虽然可以确 保发送消息的大小,却不能保证消息一定会到达。

3.3TCP 与 UDP 比较

TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可 靠传输的情况;UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。

4 什么是网际协议

网际协议是一个网络层协议,它包含寻址信息和控制信息 ,可使数据包在网络中路由。

4.1IP 协议

IP 协议(Internet Protocol 网际互连协议),它主要是完成两个任务,一个是寻找地址, 第二个是管理分割数据片。

4.2ICMP 协议

ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包 被废弃的具体原因,改善网络设置等。

IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。

4.3ARP 协议

ARP 协议(Address Resolution Protocol,地址解析协议)是一个位于 TCP/IP 协议群中的网络 层,负责将某个 IP 地址解析成对应的 MAC 地址。主机将包含目标 IP 地址信息的 ARP 请求 广播到网络中的所有主机,并接收返回消息,以此确定目标 IP 地址的物理地址。

5 什么是路由控制协议

路由控制协议是一种网络层协议,它通过提供一种共享路由选择信息的机制,允许路由 器与其他路由器通信以更新和维护自己的路由表,并确定最佳的路由选择路径。通过路由选 择协议,路由器可以了解未直接连接的网络的状态,当网络发生变化时,路由表中的信息可 以随时更新,以保证网络上的路由选择路径处于可用状态。

5.1RIP 协议

RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种 动态路由选择协议,用于自治系统(AS)内的路由信息的传递。

5.2OSPF 协议

OSPF(open shortest path first,开发最短路径优先协议)路由协议是用于网际协议(IP)网 络的链路状态路由协议。

5.3BGP 协议

BGP(Border Gateway Protocol,边界网关协议)边界网关协议(BGP)是运行于 TCP 上的一 种自治系统的路由协议。 目的是为了方便管理规模不断扩大的网络,网络被分成了不同的自治系统。BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理 好不相关路由域间的多路连接的协议。

三、 TCP 协议传输特点

TCP 是一个可靠的传输协议,在创建连接时会经历三次握手,在断开连接时会经历四次 挥手。

1 建立连接的三次握手

所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认 连接的建立。
在这里插入图片描述

2 断开连接的四次挥手

四次挥手即终止 TCP 连接,就是指断开一个 TCP 连接时,需要客户端和服务端总共发送4 个包以确认连接的断开。
在这里插入图片描述

四、 服务端口

1 端口作用

端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在 进行通信的应用程序,并准确地将数据传输。
在这里插入图片描述

2 端口分配

操作系统中一共提供了0~65535可用端口范围。

按端口号分类:
公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

注册端口(Registered Ports):从1024到65535。它们松散地绑定于一些服务,也就是说有许多服务绑定于这些端口,这些端口同样用与许多其他目的。例如:许多系统处理动态端口从1024左右开始。

3 常见的应用层协议与端口分配

在这里插入图片描述

五、数据包与处理流程

1什么是数据包

通信传输中的数据单位,一般也称“数据包”。在数据包中包括:包、帧、数据包、段、消息。

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。
在这里插入图片描述

2数据包处理流程

在这里插入图片描述

六、HTTP协议

HTTP协议介绍

1.1 什么是超文本

超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。
在这里插入图片描述
1.2 什么是Http协议

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写, HTTP 是万维网 (WWW:World Wide Web)的数据通信的基础。
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
在这里插入图片描述
HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。
在这里插入图片描述

2HTTP协议特点

2.1支持客户/服务器模式

HTTP协议支持客户端服务端模式,需要是用浏览器作为客户端来访问服务端。

2.2简单快速

客户向服务器请求服务时,只需传送请求方法和路径,请求方法常用的有GET、POST等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

2.3灵活

HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。

2.4无连接

每次请求一次,释放一次连接。所以无连接表示每次连接只能处理一个请求。有点就是节省传输时间,实现简单。我们有时称这种无连接为短路连接。对应的就有了长连接,长连接专门解决效率问题。当建立好了一个连接之后,可以多次请求。但是缺点就是容易造成占用资源不是放的问题,当HTTP协议头部中字段Connection:Keep-alive表示支持长链接。

2.5单向性

服务端永远是被动的等待客户端的请求。

2.6无状态

HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。为了解决HTTP协议无状态,于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个是Session。

3 HTTP 协议发展和版本

http 协议在 1991 年发布第一个版本版本号为 0.9。随后 WWW 联盟 (WWW Consortium-W3C)于 1994 年成立,http 协议被纳入到 W3C 组织 中进行维护和管理。
在这里插入图片描述

3.1http1.0

最早在 1996 年在网页中使用,内容简单,所以浏览器的每次请求都需要与服务器建立 一个 TCP 连接,服务器处理完成后立即断开 TCP 连接(无连接),服务器不跟踪每个客户端 也不记录过去的请求(无状态),请求只能由客户端发起(单向性)。

3.2http1.1

到 1999 年广泛在各大浏览器网络请求中使用,HTTP/1.0 中默认使用 Connection: close。 在 HTTP/1.1 中已经默认使用 Connection: keep-alive(长连接),避免了连接建立和释放的开 销,但服务器必须按照客户端请求的先后顺序依次回送相应的结果,以保证客户端能够区分 出每次请求的响应内容。通过 Content-Length 字段来判断当前请求的数据是否已经全部接 收。不允许同时存在两个并行的响应。

1.1 中最重要的一个特点是支持“长连接”,即“一次连接可以多次请求”。
在这里插入图片描述
HTTP 1.1 支持持久连接(HTTP/1.1 的默认模式使用带流水线的持久连接),在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有 许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请 求和应答仍然需要使用各自的连接。HTTP 1.1 还允许客户端不用等待上一次请求结果返回, 就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结 果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需 要的时间。

3.3http2.0
3.3.1 长连接

在 HTTP/2 中,客户端向某个域名的服务器请求页面的过程中,只会创建一条 TCP 连接, 即使这页面可能包含上百个资源。 单一的连接应该是 HTTP2 的主要优势,单一的连接能减 少 TCP 握手带来的时延 。HTTP2 中用一条单一的长连接,避免了创建多个 TCP 连接带来的 网络开销,提高了吞吐量。

3.3.2 多路复用 (Multiplexing)

HTTP2.0 中所有加强性能的核心是二进制传输,在 HTTP1.x 中,我们是通过文本的方式 传输数据。在 HTTP2.0 中引入了新的编码机制,所有传输的数据都会被分割,并采用二进制 格式编码。
在这里插入图片描述
多路复用,连接共享。不同的 request 可以使用同一个连接传输(最后根据每个 request 上的 id 号组合成正常的请求)。

HTTP2.0 中,有两个概念非常重要:帧(frame)和流(stream)。 帧是最小的数据单位,每个帧会标识出该帧属于哪个流,流是多个帧组成的数据流。 所谓多路复用,即在一个 TCP 连接中存在多个流,即可以同时发送多个请求,对端可以通过 帧中的表示知道该帧属于哪个请求。在客户端,这些帧乱序发送,到对端后再根据每个帧首 部的流标识符重新组装。通过该技术,可以避免 HTTP 旧版本的队头阻塞问题,极大提高传 输性能。
在这里插入图片描述
3.3.3 首部压缩(Header Compression)

由于 1.1 中 header 带有大量的信息,并且得重复传输,2.0 使用 encoder 来减少需要传 输的 hearder 大小。

3.3.4 服务端推送(Server Push)

在 HTTP2.0 中,服务端可以在客户端某个请求后,主动推送其他资源。 可以想象一下,某些资源客户端是一定会请求的,这时就可以采取服务端 push 的技术,提 前给客户端推送必要的资源,就可以相对减少一点延迟时间。在浏览器兼容的情况下也可以 使用 prefetch。

3.3.5 更安全

HTTP2.0 使用了 tls 的拓展 ALPN 做为协议升级,除此之外,HTTP2.0 对 tls 的安全性做了近一 步加强,通过黑名单机制禁用了几百种不再安全的加密算法。
在这里插入图片描述

4 HTTP 协议中 URI、URL、URN

4.1URI

URI:(Uniform Resource Identifier),统一资源标识符,是一个用于标识某一互联网资 源名称的字符串。URL 和 URN 都是 URI 的子集。
在这里插入图片描述
举个栗子:

 <a href="mailto:xxx@qq.com">发送邮件</a> 

URI 是个纯粹的句法结构,用于指定标识 Web 资源的字符串的各个不同部分。他不属 于定位符,因为根据该标识符无法定位任何资源。

4.2URL

URL(Uniform Resource Location 统一资源定位符),可以帮助我们唯一定位互联网上的某一个 资源,相当于是互联网资源的身份证号。URL 的五个元素包括在一个简单的地址中:

  • 传送协议。
  • 服务器。(通常为域名或者 IP 地址)
  • 端口号。(以数字方式表示,若为 HTTP 的默认值“:80”可省略)
  • 请求资源路径。
  • 传递数据。(在 URL 中传递数据是以 key=value 的结构进行数据绑定,以“?”字符为 起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以 UTF8 的 URL 编 码,避开字符冲突的问题)

举个栗子:

http://www.itbaizhan.cn:80/course/id/18.html?a=3&b=4

其中:

  1. http, 是协议;
  2. www.itbaizhan.cn,是服务器域名;
  3. 80,是服务器上的默认网络端口号,默认不显示;
  4. /course/id/18.html,是路径(URI:直接定位到对应的资源);
  5. ?a=3&b=4,请求时传递的数据;

4.3URN

URN(Uniform Resource Name,统一资源名称),其目的是通过提供一种途径,用于在 特定的命名空间资源的标识,以补充网址。

举个栗子:

 www.itbaizhan.cn:80/course/id/18.html?a=3&b=4 

URN 是 URI 的子集,包括名字(给定的命名空间内),但是不包括访问方式来。

5 HTTP 协议的请求与响应

5.1HTTP 协议中的请求信息

5.1.1 打开一个网页需要浏览器发送很多次 Request

  • 当你在浏览器输入 URL http://www.itbaizhan.cn 的时候,浏览器发送一个 Request 去获 取 http://www.itbaizhan.cn 的 html. 服务器把 Response 发送回给浏览器。
  • 浏览器分析 Response 中的 HTML,发现其中引用了很多其他文件,比如图片,CSS 文件, JS 文件。
  • 浏览器会自动再次发送 Request 去获取图片,CSS 文件,或者 JS 文件。
  • 等所有的文件都下载成功后。 网页就被显示出来了。

5.1.2 请求状态分析(request)

Request 消息分为 3 部分,第一部分叫 Request line, 第二部分叫 Request header, 第三 部分是 Request body。Request header 和 Request body 之间有个空行。
客户端发送一个 HTTP 请求到服务器的请求消息包括以下格式:
在这里插入图片描述

我们以访问:http://www.itbaizhan.cn/course/id/18.html?a=3&b=4 为 例,查看请求状态:
在这里插入图片描述
5.1.3 请求行
在这里插入图片描述
请求行: GET /course/id/18.html?a=3&b=4 HTTP/1.1 POST /login HTTP/1.1

5.1.4 请求头

 请求头用于说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力。服 务器可以根据请求头部给出的客户端
 信息,试着为客户端提供更好的响应。请求头中信息的 格式为 key:value。

5.1.4.1 Host

客户端指定自己想访问的 WEB 服务器的域名/IP 地址和端口号。 

5.1.4.2 Connection

连接方式。如果值是 close 则表示基于短连接方式,如果该值是 keep-alive,网络连接就 是持久的,在一定时间
范围内是不会关闭,使得对同一个服务器的请求可以继续在该连接上 完成。

5.1.4.3 Upgrade-Insecure-Requests

 服务端是否支持 https 加密协议。 

5.1.4.4 Cache-Control

指定请求和响应遵循的缓存机制。

5.1.4.5 User-Agent

浏览器表明自己的身份(是哪种浏览器)。例如 Chrome 浏览器:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36。

5.1.4.6 Accept

告诉 WEB 服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型 下的所有子类型。

5.1.4.7 Accept-Encoding

浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方 法(gzip,deflate)。

5.1.4.8 Accept-Language

浏览器申明自己接收的语言。语言跟字符集的区别:中文是语言,中文有多种字符集, 比如 big5,gb2312,gbk 等。

5.1.4.9 Accept-Charset

 浏览器告诉服务器自己能接收的字符集。

5.1.4.10 Referer

浏览器向 WEB 服务器表明自己是从哪个网页 URL 获得点击当前请求中的网址/URL。

5.1.4.11 Refresh

表示浏览器应该在多少时间之后刷新文档,以秒计时。

5.1.4.12 Cookie

可向服务端传递数据一种模型。

5.1.5 请求体

客户端传递给服务器的数据。比如:表单使用 post 方式提交的数据、上传的文件数据. 等

在这里插入图片描述
5.1.6 请求方式

5.1.6.1 GET

向指定的资源发出“显示”请求。GET 请求中会将请求中传递的数据包含在 URL 中并在 浏览器的地址栏中显示。
GET 请求传递数据时要求数据必须是 ASCII 字符。GET 请求可以被 浏览器缓存。 

5.1.6.2 POST

 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包 含在请求体中。
 POST 请求传递数据时,数据可以试试 ASCII 字符也可以是字节型数据,默认 为字符型。POST 请求默认情况下不会被浏览器所缓存。

5.1.6.3 HEAD

向服务器索要与 GET 请求相一致的响应,只不过响应体将不会被返回。这一方法可以 在不必传输整个响应内容的情况下,
就可以获取包含在响应消息头度中的元信息。

5.1.6.4 PUT

向指定资源位置上传其最新内容。

5.1.6.5 DELETE
请求服务器删除 Request-URI 所标识的资源。

5.1.6.6 TRACE

回显服务器收到的请求,主要用于测试或诊断。

5.1.6.7 OPTIONS

这个方法可使服务器传回该资源所支持的所有 HTTP 请求方法。用'*'来代替资源名称, 向 Web 服务器发送 OPTIONS 请求,
可以测试服务器功能是否正常运作。

5.1.6.8 CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。通常用于 SSL 加密服务 器的链接
(经由非加密的 HTTP 代理服务器)。

5.1.7 GET 和 POST 的区别(重要,面试常问)

  • GET 在浏览器回退时是无害的,而 POST 会再次提交请求。
  • GET 产生的 URL 地址可以被 Bookmark,而 POST 不可以。
  • GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
  • GET 请求只能进行 url 编码,而 POST 支持多种编码方式。
  • GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。
  • GET 请求在 URL 中传送的参数是有长度限制的,而 POST 则没有。对参数的数据类型 GET 只接受 ASCII 字符,而 POST 即可是字符也可是字节。
  • GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。
  • GET 参数通过 URL 传递,POST 放在 Request body 中。

5.2HTTP 协议中的响应信息

5.2.1 响应状态分析(response)

Response 消息也由三部分组成:第一部分叫 Response line、第二部分叫 Response header、 第三部分叫 Response body。

服务端为浏览器返回消息格式如下:
在这里插入图片描述

5.2.2 响应行
在这里插入图片描述

响应行: HTTP/1.1 200 OK

5.2.3 响应行中的状态码

和请求消息相比,响应消息多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果。

5.2.3.1 http 状态码分类

共分为5种类型
在这里插入图片描述
5.2.3.2 HTTP 状态码列表
1xx
在这里插入图片描述
2xx
在这里插入图片描述
3xx
在这里插入图片描述
4xx
在这里插入图片描述
5xx
在这里插入图片描述
5.2.3.3 常见状态码及含义

 200 - 请求成功,已经正常处理完毕 
 301 - 请求永久重定向,转移到其它 URL 
 302 - 请求临时重定向
 304 - 请求被重定向到客户端本地缓存 
 400 - 客户端请求存在语法错误 
 401 - 客户端请求没有经过授权 
 403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限 
 404 - 资源未找到,客户端请求的 URL 在服务端不存在 
 500 - 服务端出现异常

5.2.4 响应头

响应头用于告知浏览器当前响应中的详细信息,浏览器通过获取响应头中的信息可以知 道应该如何处理响应结果。响应头中信息的格式为 key:value。

5.2.4.1 Date

响应的 Date 使用的是 GMT 时间格式,表示响应消息送达时间。

5.2.4.2 Server

服务器通过这个 Server 告诉浏览器服务器的类型。

5.2.4.3 Vary

客户端缓存机制或者是缓存服务器在做缓存操作的时候,会使用到 Vary 头,会读取响 应头中的 Vary 的内容,进行一些缓存的判断。

5.2.4.4 Content-Encoding

文档的编码(Encode)方式。用 gzip 压缩文档能够显著地减少 HTML 文档的响应时间。

5.2.4.5 Content-Length

表示内容长度。只有当浏览器使用持久 HTTP 连接时才需要这个数据。

5.2.4.6 Content-Type

表示响应的文档属于什么 MIME 类型。

5.2.5 MIME 类型

5.2.5.1 什么是 MIME 类型

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩 展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自 动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打 开方式。

5.2.5.2 MIME 类型的作用

HTTP 协议所产生的响应中正文部分可以是任意格式的数据,那么如何保证接收方能看 得懂发送方发送的正文数据呢?HTTP 协议采用 MIME 协议来规范正文的数据格式。

5.2.5.3 MIME 类型的使用

在服务端我们可以设置响应头中 Content-Type 的值来指定响应类型。

5.2.5.4 MIME 类型对应列表
在这里插入图片描述
在这里插入图片描述

5.2.6 响应体

响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是 HTML 页面, 那么返回的就是 HTML 代码,如果是 JS 就是 JS 代码,如此之类。

下一篇:XML技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值