HTTP协议基础及发展历史
一、五层网络模型介绍
1、从上到下:
应用层(HTTP、FTP···)、传输层(TCP、UDP)、网络层、数据链路层、物理层
2、低三层
物理层:定义物理设备如何传输数据
数据链路层:在通信的实体间建立数据链路连接
网络层:为数据在节点之间传输创建逻辑链路
3、传输层
- 向用户提供可靠的端到端的服务
- 传输层向高层屏蔽了下层数据通信的细节
4、应用层
- 为应用软件提供很多服务
- 构建于TCP协议上
- 屏蔽网络传输相关细节
二、HTTP协议发展历史
1、HTTP/0.9
- 只有一个命令GET
- 没有HEADER等描述数据的信息
- 服务器发送完毕,就关闭TCP连接
2、HTTP/1.0
- 增加了很多命令
- 增加status code和header
- 多字符集支持、多部分发送、权限、缓存等
3、HTTP/1.1
- 持久连接
- pipeline
- 增加host和其他一些命令
4、HTTP2
- 所有数据以二进制传输
- 同一个连接里面发送多个请求不在需要按照顺序来
- 头信息压缩以及推送等提高效率的功能
三、三次握手
四、URI、URL、
1、URI
Uniform Resource Identifier 统一资源标志符
- 用来唯一标识互联网上的信息资源
- 包括URL和URN
2、URL
Uniform Resource Locator 统一资源定位器
3、URN
永久统一资源定位符
- 在资源移动之后还能被找得到
- 目前还没有非常成熟的使用方案
五、HTTP报文
1、HTTP方法
- 用来定义对于资源的操作
- 常有GET、POST等
- 从定义上讲有各自的语义
2、HTTP CODE
- 定义服务器对请求的处理结果
- 各个区间的CODE有各自的语义
- 好的HTTP服务可以通过CODE判断结果
3、最简单的web应用
const http = require('http')
http.createServer(function (req, res) {
console.log('request come', req.url)
res.end('123')
}).listen(2222)
console.log('server listing on 2222')