前言一、简单版流程描述二、过程中使用到的协议
TCP/IP协议DNS协议URL/URI协议HTTPS 三、复杂描述
前言分析一个例子,加深自己在计算机网络方面的理解:从小明在家里输入一个URL网址,到网址呈现在他面前,这个过程究竟发生了什么?
一、简单版流程描述我们以小明输入了http://www.someSchool.edu/someDepartment/home.index为例
我们在地址栏输入URL(即网址),浏览器会向DNS(域名服务器,后面会说)提供网址,由它来完成 URL 到 IP 地址的映射。然后将请求你的请求提交给具体的服务器,在由服务器返回我们要的结果(以HTML编码格式返回给浏览器),浏览器执行HTML编码,将结果显示在浏览器的正文。这就是一个浏览器发起请求和接受响应的过程。
DNS服务器会首先进行域名的映射,找到访问www.someSchool.edu所在的地址,然后HTTP 客户端进程在 80 端口发起一个到服务器 www.someSchool.edu 的 TCP 连接(80 端口是 HTTP 的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。HTTP 客户端通过它的套接字向服务器发送一个 HTTP 请求报文。该报文中包含了路径 someDepartment/home.index 的资源,我们后面会详细讨论 HTTP 请求报文。HTTP 服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM 或磁盘)中检索出对象 www.someSchool.edu/someDepartment/home.index,然后把检索出来的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。HTTP 服务器随即通知 TCP 断开 TCP 连接,实际上是需要等到客户接受完响应报文后才会断开 TCP 连接。HTTP 客户端接受完响应报文后,TCP 连接会关闭。HTTP 客户端从响应中提取出报文中是一个 HTML 响应文件,并检查该 HTML 文件,然后循环检查报文中其他内部对象。检查完成后,HTTP 客户端会把对应的资源通过显示器呈现给用户。 二、过程中使用到的协议 TCP/IP协议
CP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP
协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDP、ICMP、ARP
等等,共同构成了一个复杂但有层次的协议栈。TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP 使用 TCP
作为通信协议,这是因为 TCP 是一种可靠的协议,而可靠能保证数据不丢失。IP 协议的全称是 Internet Protocol 的缩写,它主要解决的是通信双方寻址的问题。IP 协议使用 IP 地址
来标识互联网上的每一台计算机,可以把 IP地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的 IP 地址。
上述的浏览器向DNS域名服务器提供网址的时候采用了HTTP协议,也就是说采用了TCP通信协议;而DNS域名服务器完成URL到IP地址的映射,也就是说需要得到IP地址,也就从而用到了IP协议 DNS协议
DNS 你有没有想过为什么你可以通过键入 www.google.com
就能够获取你想要的网站?我们上面说到,计算机网络中的每个端系统都有一个 IP 地址存在,而把 IP 地址转换为便于人类记忆的协议就是 DNS协议。DNS 的全称是域名系统(Domain Name System,缩写:DNS),它作为将域名和 IP
地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
上述已经进行了阐述,从人类可记忆的网址www.google.com到这个网址实际对应的web服务器的IP地址的过程就使用到了DNS协议进行映射 URL/URI协议
我们上面提到,你可以通过输入 www.google.com
地址来访问谷歌的官网,那么这个地址有什么规定吗?我怎么输都可以?AAA.BBB.CCC 是不是也行?当然不是的,你输入的地址格式必须要满足URI 的规范。URI的全称是(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。
URL的全称是(Uniform Resource Locator),中文名称是统一资源定位符,也就是我们俗称的网址,它实际上是 URI的一个子集。
URI 不仅包括 URL,还包括 URN(统一资源名称),它们之间的关系如下
所以,当我们输入www.google.com这样的域名时,其实就是用到了URI协议,或者说URL协议
HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于
HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。(这块我们后面也会详谈 HTTPS)
上文中从Web服务器返回到客户端的HTTP响应报文,便可以采用HTTPS进行加密传输
三、复杂描述看这篇
Web 页面的请求历程



