这是我在重读HTTP权威指南,写的一篇读书笔记。以帮助我更好的理解HTTP协议,也是对自己再次学习的一个小小总结。
一: web浏览器 到 web服务器之间是怎么通讯的? 先来看几个疑问
- http协议在这中间起到了什么作用?
- 为什么GET数据,和POST数据,web服务器就能接收到数据呢?
- 这些数据是怎么传输给web服务器的?
二:几个术语
MIME Type: Multipurpose Internet Mail Extension 多用途英特网邮件扩展, 用这个来标明请求的文件类型, 其中 Content-type 的类型说明了MIME的文件类型
URI: Uniform Resource Identifer 统一资源定位标识符, 它就像internet上的邮政地址一样
URI有2种形式,分别是URL
和URN
- URL — 统一资源定位符
- URN — 统一资源名, 实验阶段,没大范围使用
HTTP Message: HTTP报文
HTTP的报文分为3部分3.1 起始头
GET /index.php http/1.1
3.2 首部
content-length: 236 byte
Accept:3.3 主体
Body部分
http method方法
- PUT — 将来自客户端的数据存储到一个命名的服务器资源中去
- POST — 将客户端数据发送到服务端的网关应用程序
- GET — 从客户端向服务器发送命令名资源
- DELETE — 从服务器中删除命名资源
- HEAD — 仅发送命名资源响应的http头部分(上面的首部)
HTTP 状态码
- 200 — OK. 文档正确返回
- 404 — Not found. 无法找到这资源
- 更多状态码含义
三:了解 http 报文 - http协议的作用?
http是个应用层协议, 传输就要交给 tcp/ip了
http ———— 应用层
tcp ———— 传输层
ip ———— 网络层
网络链路接口———— 数据链路层
物理网络硬件———— 物理层http报文是怎么传输的 - 这些数据是怎么传输到服务器的?
http客户端在向服务器发送一条报文前,需要先与服务器建立一条TCP连接,用这条连接进行通信.
TCP负责这些报文的传输 - TCP协议详解
怎么进行连接呢? 首先要知道服务器的地址,怎么找到服务器在哪里? — IP
怎么找到是那个服务提供的http服务呢? — 端口解析域名 —- 用到DNS服务, 通过域名解析出服务器的ip地址,通过ip地址来定位服务器
我们现在可以总结一下浏览器的链接处理流程?
1: 浏览器从URL中解析出主机名 host
2: 浏览器将主机名转换为浏览器的ip地址
3: 浏览器将端口号(如果有)从URL中解析出来
4: 浏览器建立一条与web服务器的TCP连接
5: 浏览器向web服务器发送一条HTTP请求的报文
6: 服务器向浏览器回送一条HTTP的响应报文
7: 关闭连接。 浏览器显示文档
小弟不才,如有错误地方,还请斧正!