序
想找一本网络书看,先是下载了《图解HTTP》这本书,翻了第一章,发现概念都是一带而过,读的有点难受。又下载了《HTTP权威指南》,讲得很好。推荐给大家。
什么是HTTP
HTTP是一种协议。HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)
什么是协议
协议是定义了数据如何在计算机内及计算机之间进行交换的规则的系统。设备之间通信要求设备接受正在交换的数据的格式。定义格式的一组规则称之为协议。
媒体类型
MIME(Multipurpose Inter Mail Extension,多用途因特网邮件拓展),当初是为了解决电子邮件系统之间搬移报文时存在的问题,后来HTTP采纳了它,用来描述并标记多媒体内容。
// 由 主类型/子类型 构成
HTML文档 text/html
JPEG图片 image/jpeg
服务器会给每个资源都添加上MIME,用来描述该内容的类型。客户端拿到服务端的响应后会根据这个类型来处理该资源。
URI
URI(Uniform Resource Identifier统一资源标识符)由URL(Uniform Resource location)和URN(Uniform Resource Identifier)组成。
URL(统一资源定位符)由协议+域名+路径构成
http://www.baidu.com/logo.jpg
URL(统一资源名)与资源所在地无关,该名唯一。还未实现,未来可期。
报文的组成
HTTP协议如何连接
网络协议地址 === Internet Protocol === ip地址
域名服务 === Domain Name Service === DNS
- 浏览器从URL中解析出服务器的主机名,也就是域名
- 浏览器根据服务器的主机名解析出IP地址
- 解析出端口号
- 建立TCP连接
- 浏览器发送HTTP请求报文
- 服务器返回HTTP响应报文
- 关闭连接,浏览器显示文档。
Telnet
可以在终端中连接TCP服务器
协议版本
- HTTP/0.9
存在的问题是只支持GET方法、不支持MIME类型、HTTP首部,只能简单的与服务器通信。 - HTTP/1.0
迭代版本 - HTTP/1.0+
迭代版本 - HTTP/1.1
目前大规模用的版本 - HTTP/2.0
重点关注性能优化
Web的结构组件
-
代理
用于转发、过滤、屏蔽
-
缓存
-
网关
用于将HTTP流量转成其他协议
-
隧道
不理解