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层)
** 五:在地址栏输入内容回车后过程:三次握手,四次挥手:
image
image
** 六.请求和相应的结构,包括几个部分:
请求:请求行,请求头,空行,请求体(可以为空)

                                         响应(不能为空):状态行,响应头,空行,响应体(可以为空)
     **七.以请求结构为例:里面关键词:**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:用于对资源进行局部更新。
posted @ 2025-12-22 11:20  敛芳·  阅读(0)  评论(0)    收藏  举报