初识HTTP协议|青训营

82 阅读3分钟

初始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,服务器推送... image.png

报文

Method

image.png safe(安全的):不会修改服务器的数据方法 GET HEAD OPTIONS

idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是idempotent的 GET HEAD OPTIONS PUT DELETE

状态码

image.png

200 OK-客户端请求成功

301-资源(网页等)被永久转移到其它URL

302-临时跳转

401 Unauthorized-请求未经授权

404-请求资源不存在,可能是输入了错误的URL

500-服务器内部发生了不可预期的错误

504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应

RESTful API

RESTful API:一种API设计风格

每一个URI代表一种资源

客户端和服务器之间,传递这种资源的某种表现层

客户端通过HTTP method,对服务器端资源进行操作,实现了“表现层状态转化” image.png

常用请求头

image.png

常用响应头

image.png

缓存

强缓存:

-Expires:时间戳
-Cache-Control:
   可缓存性
      no-cache:协商缓存验证
      no-store:不使用任何缓存
   到期
      max-age:单位是秒,存储的最大周期,相对于请求的时间
   重新验证*重新加载
      must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用

协商缓存:

Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
Last-Modified/If-Modified-Since:最后修改时间

image.png

cookie

Set-Cookie-response image.png

HTTP/2概述

更快、更稳定、更简单

帧(frame):HTTP/2通信最小的单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流

消息:与逻辑请求或响应消息对应的完整的一系列帧

数据流:已建立的连接内的双向字节流,可以承载一条或多条消息

HTTP/2连接都是永久的,而且仅需要每个来源一个连接

流控制:阻止发送方向接收方发送大量数据的机制

服务器推送

HTTPS概述

HTTPS:经过TSL/SSL加密,通常情况下对称加密和非对称加密混合使用。

对称加密:加密和解密都是使用同一个密钥

非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥

总结

在进行HTTP学习时,需要了解HTTP的基本原理、请求方法、响应状态码以及常见的请求头和响应头字段。同时,还需要了解HTTP的报文结构和相关的安全性(如HTTPS)以及性能优化策略。

总结来说,学习HTTP协议需要深入理解其基本原理和核心概念,熟悉常用的请求方法和响应状态码,了解报文结构和相关的安全性和性能优化策略。通过深入学习和实践,能够更好地理解和应用HTTP协议。