第二章 应用层

一、DNS(Domain Name System)域名系统

DNS是 Domain Name System 的缩写,也就是 域名解析系统,它的作用非常简单,就是根据域名查出对应的 IP地址

DNS是:

  • 一个由分层的DNS服务器实现的分布式数据库
  • 一个使得主机能够查询分布式数据库的应用层协议。

(一)掌握如何维护域名树:NS资源记录、域名和区域的概念

1.维护域名树

  • DNS服务器管理树的一部分
  • 首先将整棵树下的第一层子树分割交给不同的 (顶级域TLD)DNS服务器管理
  • TLD域名服务器可将其管理的子树进一步分割 授权给更下一层的域名服务器管理

2.NS资源记录

区域解析库:由众多RR组成:

资源记录:Resource Record, RR

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

  1. A:internet Address,作用,FQDN --> IP  (FQDN:Fully Qualified Domain Name全限定域名:同时带有主机名和域名的名称)
  2. AAAA: FQDN --> IPv6
  3. PTR: PoinTeR,IP --> FQDN
  4. SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录
  5. NS: Name Server,专用于标明当前区域的DNS服务器
  6. CNAME:Canonical Name,别名记录
  7. MX: Mail eXchanger,邮件交换器

3.域名

  • 每个域名背后都对应一个 IP 地址
  • 虽然每次访问网站都是输入域名,但都是访问这个域名对应 IP 地址的网络服务器来打开网站的
  • 其实就是将一串难以记忆的 IP地址,变成域名,这样就很好记了

访问 www.bilibili.com,通过 B 站的 DNS 服务器将域名解析为 119.3.70.188,这才是浏览器真正访问的 IP 地址

4.区域

每一台DNS服务器实际只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。

(二)掌握常用的资源纪录:NS/A/AAAA,CNAME和MX

资源记录格式:

Name [ttl] IN PR_TYPE VALUE

  • name:域名
  • ttl:缓存时间
  • PR_TYPE:资源记录类型
  • VALUE:数值(不同资源记录有不同意义)

1.NS(Name Server)

存储的是该域内的 DNS 服务器相关信息。即 NS 记录标识了哪台服务器是 DNS 服务器。

name:当前域的名称。
value:当前域的某 DNS 服务器的名称

2.A(Address)

存储的是域内主机名所对应的ip地址。

FQDN–>IPv4

name:某 FQDN(主机名是bigserver,域名是mycompany.com,那么FQDN就是bigserver.mycompany.com。)
value:某 ipv4 地址.

3.AAAA

FQDN–>IPv6地址,定义方式与A记录类似

4.CNAME

表示规范名的意思,其所代表的记录常称为别名记录。

name: FQDN 格式的别名
value: FQDN 格式的初始名

5.MX

MX记录可以有多个,一个MX记录对应一个邮件服务器,每个记录的VALUE之前应该有一个数字,用于表示其优先级,数字越小,优先级越高。每个MX记录应该有一个对应的A记录。

name:当前的域名
value:当前域内某邮件交换器的主机名

(三)掌握域名解析过程:递归和迭代查找过程以及缓冲

1.域名解析

  1. 浏览器搜索自己的DNS(Domain Name System,域名系统)缓存。如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
  2. 搜索操作系统中的DNS。
  3. 使用递归查询的方式查询本地域名解析服务器,该服务器地址可以通过手动设置,未设置则使用路由器中本地DNS地址。
  4. 本地域名服务器采用迭代查询的方式。
    1. 根域名服务器查找,根域名服务器返回com域的顶级域名服务器的地址。
    2. 本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器地址
    3. 本地域名服务器 向baidu.com权威域名服务器发起请求,得到www.baidu.com的IP地址
  5. 本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来。
  6. 操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来。
  7. 至此,浏览器已经得到了域名对应的IP地址

2.递归查询和迭代查询的区别

  • 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
  • 迭代查询DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果。

(四)了解DNS消息的传递方式(TCP和UDP)

DNS用的是TCP协议还是UDP协议 

二、FTP:掌握控制连接和数据连接的概念,了解主动和被动模式数据传输

FTP(File Transfer Protocol,文件传输协议)是用于Internet上控制文件的双向传输的标准规范。它也是一个应用程序。属于TCP/IP网络模型中的应用层协议。直白的讲,就是实现与远程计算机之间文件的拷贝和共享,或者说下载与上传。

一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。

1. 控制连接

控制连接,顾名思义,用于传输控制指令,不涉及具体的文件传输

客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接

2. 数据连接

FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式

PORT(主动)方式的连接过程是:

  1. 客户端使用随机端口,向服务器端21号端口发起建立控制连接的请求
  2. 客户端通过控制连接,告诉服务器端,自身开放的数据连接的端口号(随机产生的)。
  3. 服务器使用20号端口,主动向客户端发起建立数据连接的请求,接下来开始上传或下载文件。
  4. 当文件传输完成,关闭TCP连接

PASV(被动)方式的连接过程是:

  1. 客户端使用随机端口,向服务器端21号端口发起建立控制连接的请求。
  2. 服务器端通过控制连接,告诉客户端,自身开放的数据连接的端口号(随机产生的)。然后服务器被动等待客户端发起数据连接的建立请求
  3. 客户端使用随机端口号,向服务器端的数据连接端口号发起TCP连接,然后开始文件传输。此时两边的端口号都是随机的
  4. 文件传输完成,关闭TCP连接

三、电子邮件:邮件地址:user@domain

电子邮件系统采用客户/服务器方式。主要由三个主要组成构建:

  1. 用户代理。用户与电子邮件系统的接口,又称为电子邮件客户端软件
  2. 邮件服务器。因特网上所有的ISP都有邮件服务器,功能是发送和接受邮件,同时还要负责维护用户的邮箱。
  3. 协议:包括邮件发送协议如STMP,邮件读取协议如POP3、IMAP。

邮件传输的过程

  1. 客户机调用用户代理来编辑要发送的邮件。用户代理用SMTP将邮件传送给发送端邮件服务器
  2. 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
  3. SMTP按照C/S方式工作。运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立
  4. 当TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器发送邮件。如果有多个邮件在邮件缓存中,则SMTP客户一一将它们发送到远程的SMTP服务器。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接
  5. 运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取
  6. 收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回。

(一)了解发送电子邮件时怎样与DNS结合

通过域名 ip的映射,就是DNS系统,因此在收发电子邮件的过程中要用到DNS系统域名解析。

根据DNS的MX记录直接将邮件传送到设置有MX记录的邮件服务器,而不需要询问邮件要传送到哪里。这个功能可以让邮件快速正确地传送到目的地。此外由于可以设置多个MX,因此,假如“一条路线不通”,即最先使用的MX邮件主机不能使用,那么邮件会往下一个MX邮件主机传递,这样降低了邮件被退回的机率,起到了冗余作用。

首先,你的邮件服务器会向DNS服务器查找server.name这个主机名对应的IP地址与MX记录,然后这封信会先送到MX主机,然后再由该MX主机把邮件送到优先级最高的MX主机上,然后交给该主机处理。如果没有找到MX记录,那么在查询到IP之后,信件才会慢慢送达该邮件服务器。在邮件到达之后,该主机则根据@地址符号前面的帐户名将信件传送到各用户的邮件目录下。

(二)掌握SMTP协议的主要命令,了解POP3协议的基本工作方式,了解POP3和IMAP的区别

1.SMTP协议

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。

工作过程

  1. 建立TCP连接
  2. 客户端向服务器发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令。
  3. 服务器端以OK作为响应,表示准备接收。
  4. 客户端发送RCPT命令。
  5. 服务器端表示是否愿意为收件人接收邮件。
  6. 协商结束,发送邮件,用命令DATA发送输入内容。
  7. 结束此次发送,用QUIT命令退出。

SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。

2.SMTP协议的主要命令

SMTP命令不区分大小写,但参数区分大小写。常用命令如下:

  • HELO:发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。
  • MAIL:这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。
  • RCPT :用来标志邮件接收者的地址,常用在MAIL FROM后,可以有多个RCPT TO
  • DATA:将之后的数据作为数据发送,以 标志数据的结尾
  • REST重置会话,当前传输被取消
  • NOOP:要求服务器返回OK应答,一般用作测试
  • QUIT:结束会话

3.POP3协议

POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”,是一个非常简单但功能有限的邮件读取协议。只能用一个邮件客户端查看邮件;邮件会存储在邮件客户端;已发送的邮件是存在客户端,而非服务器上。

POP3 采用的是“拉”(Pull)的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件, 首先要进行认证,然后才可以进入事务阶段,进行获取邮件

POP有两种工作方式:“下载并保留”和“下载并删除

(1)下载并保留:用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件:

(2)下载并删除:邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取

POP3是无状态的

4.IMAP

IMAP(Internet Mail Access Protocol,Internet邮件访问协议)主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。可用多个客户端查看邮件;邮件是存在服务器上的;已发送邮件也存在服务器上。

它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作

5.POP3和IMAP的区别

  • POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作邮件,是不会反馈到服务器上,比如通过客户端读取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的邮件不会改变
  • IMAP提供webmail 与电子邮件客户端之间的双向通信客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作

(三)了解RFC 822邮件格式,了解主要的邮件头部,包括FROM,TO/CC等

1.RFC 822邮件格式

在RFC822文档中定义,邮件内容包括两个主要的组成部分:邮件头邮件体

2.邮件头部

邮件头部包括以下内容:

  • Return-Path该字段代表邮件的回复地址
  • Received该字段格式为Received from A by B from C(A为发送方,B为接收方,C为收件人的邮件地址)是在SMTP服务器传递过程中加上的,内容由接收邮件的SMTP服务器填写,常常被用来追踪邮件传输的路线和分析邮件的来源
  • From代表发件人地址
  • to代表指定收件人地址
  • subject邮件的主题
  • date指定邮件的发送时间
  • cc抄送地址
  • bcc暗送地址

(四)MIME: 了解Content-Transfer-Encoding,掌握quoted-printable和Base64编码方法

1.MIME

MIME, 英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,用于定义复杂邮件体的格式,它可以表达多段平行的文本内容和非文本的邮件内容

MIME邮件格式分析

  • :MIME邮件的基本信息、格式信息、编码方式等重要内容都记录在邮件内的各种域中
  • Content-Type域:Content-Type域定义了邮件中所含各种内容的类型以及相关属性。
  • multipart类型:MIME邮件中各种不同类型的内容是分段存储的,各个段的排列方式、位置信息都通过Content-Type域的multipart类型来定义。
  • Content-Transfer-Encoding域:MIME邮件可以传送图像、声音、视频以及附件,这些非ASCII码的数据都是通过一定的编码规则进行转换后附着在邮件中进行传递的。

MIME邮件信息提取

  • MIME邮件传递的实际是一个经过特殊编码并以约定格式排列的字符序列,我们只需要提取存储在邮件各种域中的格式、位置和编码信息,按照根据这些信息从字符序列中提取出对应的字符内容并对其进行反向解码

2.Content-Transfer-Encoding

MIME邮件可以传送图像、声音、视频以及附件,这些非ASCII码的数据都是通过一定的编码规则进行转换后附着在邮件中进行传递的。编码方式存储在邮件的Content-Transfer-Encoding域中,一封邮件中可能有多个Content-Transfer-Encoding域,分别对应邮件不同部分内容的编码方式。目前MIME邮件中的数据编码普遍采用Base64编码或Quoted-printable编码来实现。

3.Content-Transfer-Encoding:quoted-printable

Quoted-printable编码的目的也是将输入的信息转换成可打印的ASCII码字符,但它是根据信息的内容来决定是否进行编码,如果读入的字节处于33-60、62-126范围内的(=号ASCII码为61),这些都是可直接打印的ASCII字符,则直接输出,如果不是,则将该字节分为两个4bit,每个用一个16进制数字来表示然后在前面加“=”,这样每个需要编码的字节会被转换成三个字符来表示。

4.Content-Transfer-Encoding:Base64

Base64编码的目的是将输入的数据全部转换成由64个指定ASCII字符组成的字符序列, 这64个字符由{'A'-'Z', 'a'-'z', '0'-'9', '+', '/'}构成。编码时将需要转换的数据每次取出6bit,然后将其转换成十进制数字,这个数字的范围最小为0,最大为63,然后查询{'A'-'Z', 'a'-'z', '0'-'9', '+', '/'}构成的字典表,输出对应位置的ASCII码字符,这样每3个字节的数据内容会被转换成4个字典中的ASCII码字符。当转换到数据末尾不足3个字节时, 在后面(右边)填上足够的比特0,以便最后凑成6比特,再转换为ASCII可打印字符 ,最后再添加多个等号。剩下一个字节时添加2个等号,两个字节时添加1个等号(这样补=,最后算上=,字符个数还是4的倍数)

四、了解Web体系结构

Web体系结构

  • Web服务是独立的,模块化的应用程序,可以通过通常是万维网的网络进行描述,发布,定位和调用。
  • Web服务体系结构描述了三个角色:服务提供者,服务请求者和服务代理。 和三个基本操作:发布,查找和绑定。 网络组件可以扮演任何或所有这些角色。

  • Web上有各种资源可以通过Web Page(Web页面、网页)的形式将多个资源组织在一起
  • 各个Web Page通过超链接(hyperlink)联系在一起,称为超文本(Hypertext)
  • Web Page一般采用HTML 语言(Hypertext Markup Language,超文本标记语言) 描述
  • Web Page位于某个Web服务器(也称为HTTP服务器、网站website)
  • Web Client也称为浏览器,浏览器采用HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)与Web服务器交互,请求位于Web服务器的Web Page
  • 浏览器在接收到Web Page之后,解析该Web Page,并且将其呈现给用户

五、掌握HTTP的无状态特征

1.HTTP

HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

2.HTTP的无状态特征

HTTP无状态协议,是指协议对于交互性场景没有记忆能力。

  • HTTP服务器并不维护之前收到的HTTP请求的状态
  • 简化了服务器的设计,容易支持大量并发的HTTP请求
  • HTTP协议提供cookie机制来传递状态信息

六、掌握非持续连接和持续连接,持续连接的非流水线和流水线方式

1.非持续连接

每个请求/响应对是经一个单独的TCP连接发送。称为非持续连接。

每个请求需要2RTT

如果一个HTML页面包含了N个同一服务器上的其他 Web对象,假设这些对象都可容纳在一个TCP段中(忽略TCP的拥塞控制),要建立N+1条连接

响应时间为: (N+1)*2RTT + 传输时间

2.持续连接

持续连接,就是在相同的客户端和服务器之后续的请求和响应报文能够通过相同的连接进行传送。

如果一条连接经过一定时间间隔(这个是可以配置的)仍未被使用,HTTP服务就会关闭这个连接。

3.持续连接的非流水线

小李来敲门说我要一个方便面——小王开门把面给小李——小王问小李:“你还需要什么别的吗?

不带流水线的版本,那么客户只在收到前一个请求的响应后才发出新的请求

第一个请求需要2RTT,后面请求只要RTT

如果一个HTML页面包含了N个同一服务器上的其他 Web对象,假设这些对象都可容纳在一个TCP段中(忽略TCP的拥塞控制),要建立N+1条连接

响应时间为: (N+2)RTT + 传输时间

4.持续连接的流水线方式

小李来敲门并递出一个清单——小王开门按照小李的清单把小李要的东西都给他。

HTTP客户每碰到一个引用就立即发出一个请求,因而HTTP客户可以一个接一个紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。

第一个请求2RTT,然后发送所有请求

如果所有响应可以容纳在TCP段中,响应时间:3RTT + 传输时间

5.栗子

现在有一个客户向服务器请求一个Web页面,假设这个Web页面里面含有一个HTML基本文件10个JPEG图形,并且这11个对象位于同一台服务器上。现在要把网页和引用对象都取回来。

(1)非持续连接

总共需要22个RTT

首先建立TCP连接并传输HTML文件需要2个RTT。
然后TCP连接断开。
再建立TCP连接并传输第一个JPEG图形需要2个RTT。
然后TCP连接断开。
再建立TCP连接并传输第二个JPEG图形需要2个RTT。
……
总共需要2*11=22个RTT

(2)持续连接不带流水的方式

总共需要12个RTT
首先建立TCP连接传输HTML文件=2个RTT
接下来取10个JPEG文件
TCP连接已经建立,并且在东西全部取回来之前不会关闭。
客户发送一个HTTP请求报文——服务器在TCP连接上发送JPEG文件——客户接收到整个JPEG文件。
这个过程总共耗费1个RTT
因为有10个JPEG文件,所以重复10次。
总共需要2+10=12个RTT

(3)持续连接带流水的方式

总共需要3个RTT
带流水的持续连接就是一下子把所有的能发的请求都发出去,再一下子把要的东西都拿回来。
建立TCP连接传输HTML文件=2个RTT
接下来取10个JPEG文件,10个请求同时发出去,10个JPEG文件同时取回来,共需要1个RTT。
总共需要2+1=3个RTT

七、掌握HTTP请求和响应的基本格式,了解Host头部的意义,给出一个HTTP请求和响应,可以了解到该请求和响应所执行的动作

1.HTTP请求

由【请求行、请求头、空行、请求体】4部分组成。

  1. 请求方法(GET/POST)、URI、协议/版本
    • 请求的第一行是“方法、URL、协议/版本”,请求头用来描述客户端的基本信息,把客户端相关信息告知服务器。
    • 请求方法
    • URL 路径
    • 协议/版本号,比如:HTTP/1.1
  2. 请求头(Request Header)
    • 请求头包含许多有关的客户端环境和请求正文的有用信息。
    • Accept:告诉服务器,浏览器支持什么格式数据类型,比如:Accept: text/html 或 Accept: application/json。
    • Host:服务器的域名
    • User-Agent:服务器可以通过 User-Agent 判断用户使用该软件的应用类型、操作系统、版本号等信息。
    • Cookie:服务器给客户端传输的 HTTP 请求状态,比如验证用户是否登录。
    • Content-Type:客户端发送的实体数据类型,比如:Content-Type: text/html 或 Content-Type: application/json。
  3. 空行
    • 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。
  4. 请求正文
    • 请求正文中可以包含客户提交的查询字符串信息,请求体用来存放通过POST方式提交到服务器的数据。所以只有POST请求有请求体。
    • POST请求方法的请求参数及值。
    • GET请求方法的请求参数及值是包含在请求资源路径URL中的。

2.HTTP响应基本格式

由【状态行、响应头、空行、响应体】4部分组成。

  1. 状态行
    • 由协议版本、数字形式的状态码、及相应的状态描述,各元素之间以空格分隔。
    • 协议/版本号,比如:HTTP/1.1
    • HTTP状态码
  2. 响应头(Response Header)
    • Allow:服务器支持的请求方法。
    • Content-Length:响应体的字节长度。
    • Content-Type:响应体支持的实体数据类型。
    • Location:请求资源可替代的备用的另一地址,同时设置HTTP状态码为 302。
    • Server:服务器的名称。
    • 响应头用来描述服务器的基本信息。
  3. 空行
    • 空行用来分隔开响应头和响应体。
  4. 响应正文
    • 响应体用来存放服务器响应给客户端的资源内容。

3.Host头部

Host 是 HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。

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

host字段可以是域名,也可以是ip地址。host字段域名/ip后可以跟端口号,如Host: www.6san.com:8080

有一台 ip 地址为 61.135.169.125 的服务器,在这台服务器上部署着谷歌、百度、淘宝的网站。为什么我们访问 https://www.google.com 时,看到的是 Google 的首页而不是百度或者淘宝的首页?原因就是 Host 请求头决定着访问哪个虚拟主机。

引入虚拟主机,即一台主机可提供多个Web站点,通过Host头部描述是哪个Web站点

 

补充:URL与URI的区别

URL :统一资源定位符
URI :统一资源标识符

URL是URI的一个子集

URL:以路径的方式标出某一资源的所在位置,如:中国湖北省武汉市武昌区XX街道XX小区XX单元XX号李小明
URI:以某个具体数字表征某个资源,如人的身份证号。

 

posted @ 2022-12-22 22:02  ImreW  阅读(35)  评论(0编辑  收藏  举报