HTTP协议|青训营

49 阅读5分钟

HTTP及其特点

HTTP(Hyper Text Transformer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

它是一个应用层协议,承载于TCP协议之上。

HTTP请求分为请求和响应两个部分。请求是语义简单的请求。

HTTP协议是一个简单可扩展的协议。

HTTP协议是一个无状态的协议。每一个请求是孤立的。

协议分析

发展历史

HTTP/0.9

单行协议

只有Get和目标地址,响应只有HTML文档。

HTTP/1.0

构建可扩展性

HTTP/1.0是第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用,特别是在代理服务器中。默认采用短连接。

增加了Header,有了状态码,支持多种文档类型...

HTTP/1.1

标准化协议

HTTP/1.1版本,持久连接/长连接被默认采用(默认模式使用带流水线的持久连接),并能很好地配合代理服务器工作,还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。

链接复用,缓存,内容协商...

HTTP/2

更优异的表现

传输更加快速、稳定

二进制协议,压缩header,服务器推送...

帧:HTTP/2通信的最小单位,每个帧包含帧头,至少也会标识出当前帧所属的数据流。用二进制编码传输

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

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

交错发送,接收方重组织

服务端推送是一种在客户端请求之前发送数据的机制。在 HTTP/2中,服务器可以对客户端的一个请求发送多个响应。Server Push让 HTTP1.x 时代使用内嵌资源的优化手段变得没有意义;如果一个请求是由你的主页发起的,服务器很可能会响应主页内容、logo 以及样式表,因为它知道客户端会用到这些东西。这相当于在一个 HTML 文档内集合了所有的资源,不过与之相比,服务器推送还有一个很大的优势:可以缓存!也让在遵循同源的情况下,不同页面之间可以共享缓存资源成为可能。

HTTP/3

草案

HTTPS

Hyper Text Transformer Protocol Secure

在HTTP上加密,经过TSL/SSL加密,服务端客户端都需要加密

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

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

对称加密和非对称加密混用

QQ截图20230827234142.png

协议报文结构

QQ截图20230827212357.png

安全的(Safe):不会修改服务器的数据的方法

幂等(Idempotent):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的

所有安全的方法都是幂等的

请求报文

请求报文的格式:

请求行:请求方法请求URL版本

首部:名:值

(空行)

实体的主体部分:(HTTP要传输的内容)

响应报文

响应报文的格式:

响应行:协议版本状态码原因短语

首部:名: 值

(空行)

实体的主体部分:(HTTP要传输的内容)

状态码

QQ截图20230827214958.png

RESTful API

一种API设计风格

需要遵循:

  • 每一个URI代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
  • 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转化”

常用请求头

QQ截图20230827231435.png

常用响应头

QQ截图20230827231623.png

缓存

强缓存和协商缓存

强缓存:指的是 让浏览器强制缓存服务端提供的资源

协商缓存:是在缓存过期的情况下,客户端和服务端协商,确认客户端缓存是否需要更新

QQ截图20230827232252.png

cookie

以键值对的形式存在,返回键值对,其次返回跟访问控制相关的字段

个人总结

在学习过程中学习了HTTP协议的相关知识,了解了HTTP的特点、发展、HTTP报文的结构、HTTPS等。HTTP是一种用于在Web浏览器和Web服务器之间交换数据的应用层协议。通过HTTP,Web浏览器可以向Web服务器发送请求并获取响应,从而实现Web页面的访问和传输。HTTP使用TCP作为传输层协议,并采用请求-响应模型来进行通信。在HTTP中,请求消息由请求行、请求头和请求正文组成,响应消息由状态行、响应头和响应正文组成。HTTP协议的设计旨在使其简单易用、可扩展性强,并具有高度的互操作性。HTTP协议能够使得浏览器更加的高效,使得网络传输减少。HTTP协议可以保证计算机正确快速的传输超文本文档,除此之外,还能够确定传输文档当中的哪一部分,以及哪部分内容首先显示等等。随着互联网技术的不断进步和发展,HTTP技术也在不断创新和完善,会有更快的传输速度、更好的安全性、更好的可扩展性、更好的兼容性。HTTP传输中存在一些潜在的安全威胁和漏洞,比如窃听、篡改、重放攻击等。为了弥补这些漏洞,提出了HTTPS协议来保证HTTP通信的安全性。HTTPS采用SSL/TLS协议对HTTP通信进行加密,并通过数字证书验证来保证通信双方的身份和数据的完整性和保密性。HTTPS在Web应用程序中得到广泛应用,为用户和网站提供更高的安全性和保障。