12.22HTTP协议复习
HTTP协议:一.是什么:超文本传输协议(HyperText Transfer Protocol,简称HTTP)是一种用于传输网页及其他数据的协议。它定义了客户端(通常是浏览器)和服务器之间信息交换的格式和方式。HyperText Transfer Protocol缩写
二.核心作用:****规定浏览器(客户端)和服务器之间怎么沟通,实现网页、图片、数据等资源的传输。是提供一种标准的,可扩展的机制来访问和传输网页及各种资源。
** 三.与TCPIP的区别是什么:****TCP/IP 是一套 “网络通信全家桶”,HTTP 是基于它的 “Web 专属通信规则”。
1. 作用不同:TCP/IP 管数据怎么传:比如把数据拆成小包、保证包不丢、按顺序送达。
HTTP 管传什么、怎么对话:比如浏览器说 “GET 一个网页”,服务器回 “200 成功 + 网页内容”。
2.层级不同:TCP/IP 是协议簇(包含 TCP、IP、UDP 等多个协议),属于网络传输的底层基础,负责数据从一台设备传到另一台设备的 “通路搭建”。
HTTP 是应用层协议,跑在 TCP/IP 之上,只负责浏览器和服务器之间 “请求 - 响应” 的交互规则。
3.使用场景不同:TCP/IP 是通用的,所有网络通信都用它(比如聊天软件、游戏、邮件)。
HTTP 只用于 Web 场景(比如访问网页、调用接口)。
** 四.五层(七层)结构 : 应用层(表示层,会话层),传输层,网络层,数据库链层,物理层(7层)
** 五:在地址栏输入内容回车后过程:三次握手,四次挥手::

** 六.请求和相应的结构,包括几个部分:请求:请求行,请求头,空行,请求体(可以为空)
响应(不能为空):状态行,响应头,空行,响应体(可以为空)
**七.以请求结构为例:里面关键词:**Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Cookie:携带用户会话信息(登录态等)
Content-Type:(POST 专用)声明请求体的数据格式
**八.常见请求头:**Host:目标服务器的域名。
User-Agent:客户端浏览器的信息。
Accept:客户端能够接受的内容类型。
Accept-Language:客户端能够接受的语言。
Accept-Encoding:客户端能够接受的编码格式。
Connection:连接管理信息,如保持连接打开或关闭。
Authorization:客户端提供的认证信息。
Cookie:客户端发送给服务器的Cookie信息。
** 九.响应关键字:**date:响应生成时间
Content-Type:响应的内容类型 | `Content-Type: text/html; charset=utf-8` <br> `Content- Type: application/json` |
Content-Length:指示响应体的字节大小 | `Content-Length: 2048` |
Cache-Control: 控制客户端的缓存策略 | `Cache-Control: max-age=3600`(缓存1小时) |
Set-Cookie:设置客户端的Cookie信息 | `Set-Cookie: sessionid=abc123; Path=/; HttpOnly` |
Server: 生成响应的服务器软件的信息 | `Server: Nginx/1.21.0` |
Location: 配合 3xx 状态码,指示资源重定向地址 | `Location: https://www.new-example.com`
Access-Control-Allow-Origin: 解决跨域问题,允许指定域名访问 | `Access-Control-Allow- Origin: *` |
响应体: HTTP响应体包含了实际的响应数据,根据响应头部的Content-Type,响应体可以是HTML、JSON、图片等多种格式的数据。
**十.常见响应头:**Date:响应生成的时间。
Content-Type:响应的内容类型。
Content-Length:响应体的大小,以字节为单位。
Server:生成响应的服务器软件的信息。
Set-Cookie:设置客户端的Cookie信息。
Location:重定向的URL。
Content-Encoding:响应体的编码方式。
Cache-Control:指定缓存策略。
**十一.是否一定有相应:****不一定**。
从 HTTP 协议的**理论设计**和**实际通信场景**来看,存在两种客户端收不到响应的情况:
1. **底层传输层故障**
HTTP 基于 TCP 协议,若 TCP 连接建立失败(比如服务器宕机、网络中断),客户端发送请求后,服务器根本没收到,自然不会返回任何响应。
此时客户端会触发**超时错误**。
2. **特殊协议行为(极少场景)**
少数情况下,服务器收到请求后,因特殊需求(比如安全策略拦截恶意请求),会主动**丢弃请求不返回响应**,客户端最终也会因超时报错。
**核心结论**:只有当 **TCP 连接正常建立 + 服务器成功接收并处理请求** 时,客户端才会收到 HTTP 响应。
**十二.不同状态码的意思:**
HTTP响应状态码由三位数字组成,表示服务器对客户端请求的处理结果。常见的状态码有:
200 OK:请求成功。
400 Bad Request:请求有误,服务器无法理解请求。
401 Unauthorized:请求需要认证。
403 Forbidden:服务器拒绝访问请求的资源。
404 Not Found:请求的资源不存在。
500 Internal Server Error:服务器遇到错误,无法完成请求。
503 Service Unavailable:服务器无法处理请求,通常是由于服务器过载或维护。
**十三.Http与Https协议有什么区别:**
image-20251222110022013
**十四.请求方法:**HTTP定义了几种不同的请求方法,每种方法都有其特定的用途:
GET:请求指定的资源,通常用于获取数据,不会修改服务器上的资源。
POST:向指定资源提交数据,通常用于创建或更新资源。
PUT:与POST相似,但它要求客户端在发送请求时提供整个资源的内容,通常用于更新现有资源。
DELETE:请求服务器删除指定的资源。
HEAD:与GET相似,但不返回资源的内容,仅返回响应头。
OPTIONS:请求服务器支持的HTTP方法。
PATCH:用于对资源进行局部更新。

浙公网安备 33010602011771号