网络协议分层
只关心应用层里的http和传输层里的tcp
- 物理层:主要作用是定义物理设备如何传输数据
- 数据链路层:在通信的实体间建立数据链路连接
- 网络层:为数据在结点之间传输创建逻辑链路
- 传输层:向用户提供可靠的端到端(End-to-End)的服务,传输层向高层屏蔽了下层数据通信的细节
- 为应用软件提供了很多服务,构建于TCP塄之上,屏蔽网络传输相关细节
http历史
http0.9
- 只有一个命令GET
- 没有header等描述数据的信息
- 服务器发送完毕,就关闭TCP连接
http1.0
- 增加了status,code和header
- 多字符集支,多部分发送,权限,缓存
http1.1
- 持久连接
- pipeline
- 增加host和其它一些命令
http2
- 所有数据以二进制传输
- 同一个连接里面发送多个请求不再需要按照顺序来
- 头信息压缩以及推送等提高效率的功能
http,tcp之间的关系
建立了tcp连接之后,http(用户就可以给服务器发送请求和服务器就可以响应了),可以多个http同时进行
三次握手
http报文
请求报文的起始行
http方法
- 用来定义对资源的操作
- 常用的有GET,POST,
- 从定义上讲各自的语义
请求报文的起始行
- 定义服务器对请求的处理结果
- 各个 区间的code有各自的语义
- 好的http服务可以通过code判断结果
最简单的服务器
const http = require('http');
http.createServer(function (req, res) {
console.log(req.url);
res.end("hello world")
}).listen(8888)
console.log('server start at port 8888')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。