初始HTTP
Hyper Text Transfer Protocol超文本传输协议,它是一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网的数据通信的基础,也是互联网应用最为广泛的一种网络传输协议。最初设计HTTP的目的是为了提供一种发布和接收HTML页面的方法。HTTP是一个简单可扩展的协议,也是一个无状态的协议
协议分析
发展
HTTP/0.9单行协议:请求GET/mypage.html,响应只有HTML文档
HTTP/1.0构建可扩展性:增加了header,有了状态码,支持多种文档类型...
HTTP/1.1标准化协议:链接复用,缓存,内容协商...
HTTP/2更优异的表现:二进制协议,压缩header,服务器推送...
报文
Method
safe(安全的):不会修改服务器的数据方法
GET HEAD OPTIONS
idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是idempotent的 GET HEAD OPTIONS PUT DELETE
状态码
200 OK-客户端请求成功
301-资源(网页等)被永久转移到其它URL
302-临时跳转
401 Unauthorized-请求未经授权
404-请求资源不存在,可能是输入了错误的URL
500-服务器内部发生了不可预期的错误
504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
RESTful API
RESTful API:一种API设计风格
每一个URI代表一种资源
客户端和服务器之间,传递这种资源的某种表现层
客户端通过HTTP method,对服务器端资源进行操作,实现了“表现层状态转化”
常用请求头
常用响应头
缓存
强缓存:
-Expires:时间戳
-Cache-Control:
可缓存性
no-cache:协商缓存验证
no-store:不使用任何缓存
到期
max-age:单位是秒,存储的最大周期,相对于请求的时间
重新验证*重新加载
must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
协商缓存:
Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
Last-Modified/If-Modified-Since:最后修改时间
cookie
Set-Cookie-response
HTTP/2概述
更快、更稳定、更简单
帧(frame):HTTP/2通信最小的单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
消息:与逻辑请求或响应消息对应的完整的一系列帧
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
HTTP/2连接都是永久的,而且仅需要每个来源一个连接
流控制:阻止发送方向接收方发送大量数据的机制
服务器推送
HTTPS概述
HTTPS:经过TSL/SSL加密,通常情况下对称加密和非对称加密混合使用。
对称加密:加密和解密都是使用同一个密钥
非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥
总结
在进行HTTP学习时,需要了解HTTP的基本原理、请求方法、响应状态码以及常见的请求头和响应头字段。同时,还需要了解HTTP的报文结构和相关的安全性(如HTTPS)以及性能优化策略。
总结来说,学习HTTP协议需要深入理解其基本原理和核心概念,熟悉常用的请求方法和响应状态码,了解报文结构和相关的安全性和性能优化策略。通过深入学习和实践,能够更好地理解和应用HTTP协议。