1.浏览网页过程
域名系统(Domain Name System,DNS)
步骤1.浏览器通过DNS服务器查找域名对应的IP地址。
步骤2.向IP地址对应的Web服务器发送请求。
步骤3.Web服务器响应请求,发回HTML页面。
步骤4.浏览器解析HTML内容,并显示出来。
2.统一资源定位符
统一资源定位符(Uniform Resource Locator,URL)是互联网上标准资源的地址。URL包括:协议头、服务器地址和文件路径
2.1协议头
协议头(Protocol Head)指:指定使用的传输协议。网络上常用的协议如下表:
常见协议 | 代表类型 |
---|---|
File | 访问本地计算机的资源 |
FTP | 访问共享主机的文件资源 |
HTTP | 超文本传输协议,访问远程网络资源 |
HTTPS | 安全的ssl加密传输协议,访问远程网络资源 |
Mailto | 访问电子邮箱地址 |
常见的是HTTP协议和HTTPS协议,分别由协议头http和https指定。
|
2.2服务器地址和端口
服务器地址(Hostname,IP):存放资源的服务器主机名或者IP地址;目的:表示互联网上的唯一一台计算机,通过该IP地址可以找到这台计算机。
端口(Port):用于标识该计算机上运行的不同程序。每一个网络程序都对应一个或者多个特定的端口号。
3.路径
路径(Path):由零个多个“/”符号隔开的字符串,用于指定本次请求的资源在服务器中的位置。
3.计算机域名系统(DNS)
DNS(Domain Name System或Domain Name Service)–计算机域名系统将域名转化成对应的IP地址。一般的一个域名的DNS解析时间在10~60ms。
http://183.97.33.107 使用服务器地址访问百度首页,但是该地址不易记忆,因此使用域名网址访问,如:http://www.baidu.com
4.HTTP网络请求原理
浏览器的主要功能是向服务器发送请求,并在窗口中显示选择的网路资源。
**HTTP请求包括GET和POST两种方式**
5.客户端HTTP请求格式
客户端发送一个HTTP请求到服务器的请求消息,包括请求行、请求头部、空行和请求数据。
5.1 请求行
请求方法 | 描述说明 |
---|---|
GET | 请求指定的网页信息,并返回实体主体 |
POST | 向指定资源提交数据进行处理请求,数据被包含在请求体中,POST请求可能会导致新的资源的建立和已有资源的修改 |
HEAD | 返回的相应没有具体内容,用于获取报头 |
PUT | 客户端向服务器传送的数据取代指定的文档内容 |
DELETE | 请求服务器删除指定的网页 |
CONNECT | HTTP1.1协议中预留给能将连接改为管道方式的代理服务器 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
GET和POST的区别:
1.GET是从服务器上获取指定页面信息,POST是向服务器提交数据并获取页面信息。
2.GET请求参数都显示在URL上,服务器根据该请求所包含URL中的参数来产生响应内容,由于请求参数都是暴露在外,所以安全性不高。
3.POST请求参数在请求体当中,消息长度没有限制而且采取隐式发送,**通常用来向HTTP服务器提交量比较大的数据**。在安全性方面,比GET请求更高。
5.2 请求行请求报头
数据 | 描述说明 |
---|---|
Host | 被请求资源的主机和端口号 |
Connect | 客户端和服务器的连接类型 |
Upgrade-Insecure-Requests | 升级为HTTPS请求 |
User-Agent | 浏览器名称:标识客户端身份的名称 |
Accept | 客户端希望接受的文件类型 |
Referer | 页面跳转来源:用于追踪Web请i去来自哪个页面,是从哪个网站来的等等 |
Accept-Encoding | 文件编解码格式 |
Accept-Language | 语言种类:zh或zh-cn[中文] en[英文] |
Accept-Charset | 字符编码:iso-8859-1、gb2312[简体中文字符集]、utf-8[解决多种语言文本显示问题,以实现应用国际化和本地化] |
Cookie | 记载和服务器相关的用于信息,也可以用来实现模拟登录 |
Content-Type | POST数据类型:指定POST请求中用来表示的内容类型 |
6.服务器HTTP响应格式
HTTP响应报文有四部分组成,分别是状态行、响应报头、空行和响应正文
6.1 响应报头
数据 | 描述说明 |
---|---|
Cache-Control | must-revalidate、no-cache[客户端不缓存服务器资源]、private |
Connection | keep-alive:告诉客户端服务器的TCP连接是一个长连接,客户端可以继续使用这个TCP连接发送HTTP请求 |
Content-Encoding | gzip:告诉客户端,服务器发送的资源是采用gzip编码,因此客户端需要采用gzip对资源进行编码 |
Content-Type | 告诉客户端,资源文件的类型及字符编码 |
Date | HTTP协议发送的时间都是GMT[格林尼治所在地的标注时间] ,服务器发送资源是的服务器时间 |
Expires | 告诉客户端在该时间之前,可以直接访问缓存副本 |
Pragma | 等同于Cache-Control |
Server | 服务器对应的版本 |
Transfer-Econding | 告诉客户端,服务器发送资源的方式是分块发送的 |
Vary | 告诉缓存服务器缓存压缩和非压缩文件,但现在的浏览器都支持压缩的,因此该报头作用不大 |
6.2 响应状态码
响应状态码由3位数字组成,有5中可能取值
数据 | 描述说明 |
---|---|
100~199 | 服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程 |
200~299 | 服务器成功接收请求并完成整个处理过程 |
300~399 | 处理中,为了进一步完成请求,客户需进一步细化请求 |
400~499 | 客户端的请求有错误,长用状态码如404【服务器无法找到被请求的页面】、403【服务器拒绝访问,权限不够】 |
500~599 | 服务器端出现错误 |