一、HTTP
-
1. HTTP 概念
HTTP:Hyper Text Trensfer Protocol,
超文本传输协议
,互联网应用最广泛的一种网络协议
。- 位置
HTTP 是一个简单的请求-响应协议,通常运行在 TCP 之上。(应用层)
- 用途
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
- 分类
请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
-
2. 网络协议
网络协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
-
3. HTTP 协议历史 && 标准
-
HTTP/0.9:1991;仅支持GET;
-
HTTP/1.0:1996;支持多种请求、媒体对象;
-
HTTP/1.0+:支持持久连接、虚拟主机、连接代理等;
-
HTTP/1.1:1999;校止HTTP中涉及缺陷,性能优化;
-
HTTP-NG(HTTP/2.0):注重 HTTP 协议性能优化、更强大服务逻辑,远程执行框架等;
-
-
4. HTTP 请求 && 响应
- 客户端-请求-服务端:请求 (request) ;
- 服务端-反馈-客户端:响应 (response) ;
-
HTTP 基本原理
- HTTP 属于 应用层 协议,通过TCP或TLS加密的TCP连接;
二、基于 HTTP 的组件系统
-
用户代理
用户代理 , 也可理解为代理用户,多指:浏览器 ;
每向服务器发送一个请求,服务器都会处理并返回一个响应,在这个过程中,有许多Proxies 的实体,其作用各不相同; -
客户端
客户端(user-agent):任何能够为用户发起行为的工具(多为 浏览器 扮演该角色—— node.js 也可扮演客户端);
客户端与服务器端交互流程:
-
Web 服务器
Web 服务器:HTTP 协议通信的另一端,由 Web 服务器服务并提供客户端所请求的文档。
服务器 只是 虚拟意义上代表一个机器 :可以是共享负载(负载均衡)的一组服务器组成的 计算机集群 ,也可以是一种复杂的软件,通过向其他计算机(缓存、数据库服务、电子商务服务的)发起请求来获取部分或全部资源;
Web 服务不一定是一台机器,但一个机器上可以装载众多服务器;
-
代理
代理:位于浏览器和服务器之间,有许多计算机和其他设备转发HTTP消息
-
功能:
-
1.缓存(可以是公开的也可以是私有的,浏览器缓存等)
-
2.过滤(像反病毒扫描,家长控制)
-
3.负载均衡(多个服务器服务不同请求)
-
4.认证(不同资源进行权限管理,身份、共享资源等)
-
5.日志记录(允许存储历史信息)
-
……
-
-
-
概括
打开浏览器访问页面过程总结:由 user-agent 发起请求 , 通过浏览器上的代理具体实现;
三、HTTP 相关概念
-
HTTP 基本特性
-
HTTP 是简单的(允许测试、降低门槛)
-
HTTP 是可扩展的
-
HTTP 是无状态(没有记忆存储功能)的,有会话的(同一连接中两个请求之间没有关系)
-
HTTP 是持久连接的
-
-
HTTP 控制特性
-
功能:
-
1.缓存(可以是公开的也可以是私有的,浏览器缓存等)
-
2.过滤(像反病毒扫描,家长控制)
-
3.负载均衡(多个服务器服务不同请求)
-
4.认证(不同资源进行权限管理,身份、共享资源等)
-
5.日志记录(允许存储历史信息)
-
……
-
-
-
HTTP 流
-
1.打开一TCP连接:TCP连接被用来发送一条或多条请求,以及接收回应消息;
-
2.发送一个HTTP报文:HTTP报文是语义可读的;
GET / HTTP / 1.1 Host: developer.mozilla.org Accept-Language:fr
- 3.读取服务端返回的报文信息
HTTP / 1.1 200 OK Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT Content-Length:12345 Content-Type: text/html
- 4.关闭连接或者为后续请求重新连接;
-
拓展
协议名 | 端口号 | 中文名 |
---|---|---|
FTP | 21 | 文件传输协议 |
Telnet | 23 | 远程登录协议 |
POP3 | 110 | 邮件接收协议 |
SMTP | 25 | 邮件传送协议 |
HTTP | 80 | 超文本传输协议 |
DNS | 53 | 域名解析协议 |
SNMP | 161 | 简单网络管理协议 |
TFTP | 69 | 简单文件传输协议(UDP服务) |