(上网就是把人家主机上的资源弄到你的主机上)
1. HTTP:(Hype Text Transfer Protocol)超文本传输协议,,协议就是一套规则
2. 超文本:纯文本就是纯粹的文字信息的文本,对应的超文本就是包含视频、音频、图片等多媒体信息的文本
3. URL(UniformResource Location)统一资源定位符,用于识别万维网中的某个资源的地址
(1)格式:协议//:主机端口/文件资源的路径 eg:http://www.baidu.com:80/index.html
(2)http:协议,表示该资源以什么格式、流程、规则等进行传输,对应的还有 https(http的安全版)、ftp(文件传输协议)等
(3)www.baidu.com:该主机的 IP 地址(唯一的),互联网上有很多主机,通过 IP 找到要和哪台主机进行通信。但一般 IP 地址格式都是:0~255.0~255.0~255.0~255,我们之所以可以通过 www.baidu.com 访问,是因为它通过 DNS 绑定了这个 IP 地址,DNS 可理解为一张表,记录着 IP 和域名的对应信息,在互联网中也是唯一的
(4)80:该程序的端口,通过 IP 找到主机后,这个主机上可能运行着很多的程序,通过端口号就可以确定要和哪个程序通信,因为一般每个程序都会唯一占用多个端口号。端口号小于 1024 的一般都是默认被占用了的,比如 HTTP 默认占用 80 端口,因此我们设置端口号的时候一般设置大于 1024
(5)/index.html:该文件资源的路径,类似于 Windows 的文件路径,通过这个路径就可以获得对应资源了
如此,通过 URL 就可以定位每个资源了
4.流程
(1)浏览器分析 URL eg:http://www.baidu.com:80/index.html
(2)浏览器向 DNS 请求解析:根据解析表,www.baidu.com 对应的IP 是 61.135.169.125(命令行用 ping 可以查看)
(3)DNS 解析出的 IP 发回给浏览器,这样就得到要获取的资源在互联网中的准确地址了 http://61.135.169.125:80/index.html
(4)根据 IP + 端口,浏览器与服务器建立 TCP 连接
(5)浏览器向服务器发送 GET/index.html 请求(一般第一次都使用 GET 请求,一般网站的首页都是 index.html)
(6)服务器响应请求,根据浏览器所在的 IP+端口,向浏览器发送 index.html 文件
(7)释放 TCP 连接
(8)浏览器里显示收到的资源
流程图
5. HTTP 报文格式
既然 HTTP 是一套规则,那也肯定规定了它的格式,现在就来了解一下
(1)请求报文
请求报文的格式一共三大段:请求行、请求头和数据部分,注意他们之间的空格和回车,这是固定且必须的
[ 请求行 ]:请求方法是浏览器访问服务器的方式,比如最广泛的 GET,用于提交登录数据的 POST
URL 就是服务器的 URL,协议版本是 HTTP 的版本,常见的比如 HTTP/1.1
[ 请求头 ]:表示该请求的各种相关参数信息,常见的如下表
[ 数据部分 ]:不是固定的,是根据自己请求的资源生成的
(2)响应报文结构(注意空格和回车)
[ 状态行 ]:版本指的是 HTTP 协议版本
状态码和原因短语:代表请求状态的代码(图片来源见水印)
[ 响应头]:包含响应的各种参数