文章目录
- 一、万维网概述 ★
- 二、HTTP 协议 ( 超文本传输协议 ) ★
- 三、HTTP 协议特点 ★
- 四、HTTP 连接方式 ★
- 五、HTTP 协议报文结构
- 六、HTTP 请求报文 ★
- 七、HTTP 响应报文 ★
一、万维网概述 ★
万维网概述 :
① 概念 : 万维网 是 超大规模 , 联机形式 的 资料空间 , 是 海量网络站点和网页集合 ;
② 定位资源 : 使用 统一资源定位符 URL 可以唯一标识 一个资源 , 这个资源可以是 文本 , 视频 , 音频 , 图片 ;
③ URL 形式 : <协议>://<主机地址>:<端口号>/<路径>
- 协议 : http , ftp
- 主机地址 : IP 地址 , 域名
- 端口号 : 16 位端口号 , 0 ~ 65535
URL 不区分大小写字母 ;
④ 获取资源 : 用户点击超链接获取资源 , 服务器通过 HTTP 协议 ( 超文本传输协议 ) 将资源传输给用户 ;
⑤ 万维网工作方式 : 客户端 / 服务器 方式 , 客户端就是网页浏览器 IE , 火狐等 , 服务器 是 部署 HTTP 服务器程序 , 如 Tomcat , IIS ;
⑥ HTML 语言 : 万维网 使用 HTML 超文本标记语言 ;
二、HTTP 协议 ( 超文本传输协议 ) ★
HTTP 协议 ( 超文本传输协议 ) : 定义了 浏览器 向 服务器 请求资源的方式 , 以及 服务器 如何将资源 发送给浏览器 ; 具体流程如下 :
① 用户操作 : 用户 在浏览器上 输入 URL , 或 点击超链接 ;
② 分析 URL : 浏览器 分析 URL 链接 ;
③ 请求 IP 地址 : 浏览器 向 DNS 服务器请求 域名 对应的 IP 地址 ;
④ 解析 IP 地址 : DNS 服务器将域名解析成 IP 地址 ;
⑤ 建立 TCP 链接 : 客户端 与 服务器端建立 TCP 链接 ;
⑥ 浏览器申请资源 : 浏览器 向 服务器 发出 申请资源 命令 ;
⑦ 服务器响应 : 服务器响应浏览器的资源申请 ;
⑧ 释放 TCP 链接 : 客户端 服务器 双方 释放 TCP 链接 ;
⑨ 浏览器显示资源 : 浏览器 显示从服务器中获取到的 文本 , 图片 , 视频等资源 ;
浏览器可以只下载文字部分 ;
三、HTTP 协议特点 ★
HTTP 协议特点 :
① 无状态 : HTTP 协议是无状态的 , 两次 HTTP 访问是没有任何关联的 ;
② Cookie : 存储在用户主机中的文本文件 , 记录一段时间内的用户访问记录 , 以便网站方面可以提供个性化服务 ;
③ 无连接 : 应用层的 HTTP 协议使用 传输层的 TCP 协议 , 但是 HTTP 协议本身是无连接的 , 通信双方事先不需要建立 HTTP 连接 ;
四、HTTP 连接方式 ★
HTTP 连接方式 : HTTP 连接分为 持久连接 ( Keep-alive ) 和 非持久连接 ( Close ) ; 持久连接又分为 流水线 , 非流水线 两种连接方式 ;
- 持久连接 : TCP 连接建立后持续很长时间 ;
- 非流水线 类似于 GBN , SR 协议 , 可以连续发出多条数据 ; 可以提高网络效率 ;
- 流水线 : 类似于停止-等待协议 , 发出一条数据 , 必须等待确认后 , 才能发出第二条数据 ;
- 非持久连接 : 每次数据发送都要重新连接 TCP 连接 ;
五、HTTP 协议报文结构
HTTP 协议报文结构 : HTTP 报文分为 请求报文 和 响应报文 , HTTP 报文是面向文本的 , 报文中每个字段都是 ASCII 码字符串 ;
- 请求报文
- 响应报文
六、HTTP 请求报文 ★
HTTP 请求报文 :
① 请求行 :
- 方法 : 是 命令 , 表明执行的操作 , 获取 , 删除 等 ;
- URL : 资源地址 ;
- 版本 : HTTP 协议版本 ;
- CRLF : 回车换行 , 请求行结束必备 ;
② 首部行 : 说明 浏览器 , 服务器 , 报文主体 的信息 ;
- 首部字段名 : 空格 首部字段值 CRLF ( 回车换行 ) ;
- 上述结构有若干个 ;
③ 实体主体 : 首部行 后面 是 CRLF 回车换行 , 在后面就是 实体主体 , 请求报文中 , 实体主体 , 通常不使用 ;
请求报文示例 :
代码语言:javascript复制GET /index.html HTTP/1.1
Host: www.baidu.com
Connection: Close
Cookie: 666
第一行 GET /index.html HTTP/1.1
是 请求行 , GET 指的是获取资源 , /index.html 表示获取的资源 URL 地址 , HTTP/1.1 说明当前的 HTTP 协议版本是 1.1 版本 ; 注意 上面 三项之间有两个空格 ; 首部行后面有一个 CRLF 回车换行 ;
第二行 是首部行 , Host 是首部字段名 , www.baidu.com 是首部字段值 ; 注意 冒号后面有一个空格 ; 末尾有一个 CRLF 回车换行 ;
第三行 和 第四行 也是首部行 ,
七、HTTP 响应报文 ★
HTTP 响应报文 :
① 状态行 :
- 版本 : HTTP 协议版本 ;
- 状态码 : 五种类型 , 33 种状态码 ;
- CRLF : 回车换行 , 请求行结束必备 ;
② 首部行 : 说明 浏览器 , 服务器 , 报文主体 的信息 ;
- 首部字段名 : 空格 首部字段值 CRLF ( 回车换行 ) ;
- 上述结构有若干个 ;
③ 实体主体 : 首部行 后面 是 CRLF 回车换行 , 在后面就是 实体主体 ;
状态码类型 :
- 1xx 状态码 : 表示 通知信息 , 如 收到请求 , 正在处理请求 ;
- 2xx 状态码 : 表示 成功 , 如 202 Accepted ;
- 3xx 状态码 : 表示重定向 , 如 完成请求还需要进一步操作 ;
- 4xx 状态码 : 表示客户差错 , 请求无法完成 , 如 404 Not Found ;
- 5xx 状态码 : 表示服务器差错 , 如 服务器失效 , 无法完成请求 ;