经典五层模型
传输层
传输层向用户提供了可靠的端到端的服务
传输层向高层屏蔽了下层数据通信的细节
应用层
为应用软件提供了很多服务
构建与tcp协议之上
屏蔽网络传输相关细节
HTTP 协议发展历史
HTTP/0.9
- 只有一个命令GET
- 没有header等描述数据的信息
- 服务器发送完毕,就关闭TCP连接(http请求和tcp连接不是一个概念)
HTTP/1.0
- 增加了很多命令
- 增加了status code 和header
- 多字符集支持,多部分发送,权限,缓存
HTTP/1.1
- 持久连接
- pipelint 同一个连接里面发送多个
- 增加了host和一些命令,同一个服务器,跑多个不同服务node,java等,可以部署很多不同的服务
HTTP2
- 所有数据以二进制传输
- 同一个连接里面发送的多个请求不在需要按照顺序来
- 头信息压缩及推送等提高效率的功能(请求完html,可以推送css和js)
HTTP三次握手
TCP-connection
wireshark工具,查看网络连接
三次握手时序图
URL\URI\URN
- URI uniform resource identifier/统一资源标志符
-URL uniform resource locator /统一资源定位器 - URN 永久统一资源定位符
HTTP报文格式
请求报文
响应报文
HTTP方法
使用nodejs创建一个最简单的web服务器
1 | const http=require('http'); |