对于Web开发者而言,掌握HTTP协议是技术成长的必经之路。只有夯实HTTP基础,才可能在Web这条路上走的更远。缓存
网络协议分层
经典五层模型

为应用软件提供了不少服务
构建于TCP协议之上
屏蔽网络传输相关细节服务器
向用户提供可靠的端到端(End-to-End)服务
传输层向高层屏蔽了下层数据通讯的细节网络
网络层为数据在结点之间传输建立逻辑链路spa
数据链路层在通讯的实体间创建数据链路链接code
物理层主要做用是定义物理设备如何传输数据orm
Http协议发展历史
http/0.9
- 只有一个命令GET
- 没有HEADER等描述数据的信息
- 服务器发送完毕,就关闭TCP链接
http/1.0
- 增长了不少命令
- 增长status code和header
- 多字符集支持、多部分发送、权限、缓存等
http/1.1图片
- 持久链接
- pipeline
- 增长host和其余一些命令
http2
- 全部数据以二进制传输
- 同一个链接里面发送多个请求再也不须要按照顺序来
- 头信息压缩以及推送等提升效率的功能
HTTP的三次握手

URI、URL、URN
URI
- Uniform Resource Identifier/统一资源标志符
URL
- Uniform Resource Locator/统一资源定位器
- http://user:pass@host.com:80/path?query=string#hash(此类格式的都叫作URL,好比ftp协议)
URN
- 永久统一资源定位符
- 在资源移动以后还能被找到
- 目前尚未很是成熟的使用方案