自学内容网 自学内容网

20250110面试鸭特训营第18天

更多特训营笔记详见个人主页【面试鸭特训营】专栏

250110

1. 常见的 HTTP 状态码有哪些?

  • 状态码由三位数组组成,且第一位数字表示类别
  • 常见的 HTTP 状态码分为五大类

1xx:信息响应

状态码标识含义
100Continue服务器已接收请求的初步部分,客户端应继续请求
101Switching Protocols服务器同意协议,如从 HTTP 切换到 WebSocket

2xx:成功

状态码标识含义
200OK请求成功,服务器返回所请求的资源或数据
201Created请求成功并创建了新的资源,常用于 POST 请求
204No Content请求成功但服务器不返回任何内容,常用于删除操作

3xx:重定向

状态码标识含义
301Moved Permanently资源已永久移动到新的 URL ,客户端应使用新 URL 访问
302Found资源临时移动到新的 URL ,客户端应继续使用原来的 URL
304Not Modified资源未修改,客户端可以使用缓存版本

4xx:客户端错误

状态码标识含义
400Bad Request请求无效或语法错误,服务器无法处理
401Unauthorized请求需要身份验证,客户端未提供有效的凭证
403Forbidden服务器理解请求但拒绝执行,通常是权限问题
404Not Found请求的资源在服务器上未找到

5xx:服务器错误

状态码标识含义
500Internal Server Error服务器内部错误,无法完成请求
502Bad Gateway服务器作为网关或代理,从上游服务器接受到无效响应
503Service Unabailable服务器暂时无法处理请求,通常是因为过载或维护

2. HTTP 请求包含哪些内容,请求头和请求体有哪些类型?

常见请求方法

请求方法具体作用
GET请求指定的资源,通常用于获取数据,不包含请求体
POST向服务器提交数据,通常用于表单提交,数据在请求体中
PUT用于更新资源,数据也是在请求体中
DELETE请求删除指定资源

HTTP 请求的组成部分

名称说明
请求行(Request Line)包含请求方法 如GET、POST
请求的资源路径 如/index.html 、HTTP协议版本 如HTTP/1.1
请求头(Request Headers)包含各种键值对,用于传递客户端环境、请求内容、认证信息等
空行(Blank Line)用于分割请求头和请求体
请求体(Request Body)仅在 POST 、 PUT 等方法中存在,包含需要发送到服务器的数据

请求头的常见类型

名称说明
通用头部(Heneral Headers)适用于请求和响应,如 Cache-ControlConnection
请求头部(Requset Headers)特定与请求的头部,如 HostUser-Agent
AcceptAuthorization
实体头部(Entity Headers)描述请求体的头部,如 Content-TypeContent-Length

请求头的常见参数

名称说明
Host指定请求的主机名及端口,HTTP/1.1中必须包含
User-Agent标识客户端信息,通常用于服务器端的统计和个性化服务
Accept指定客户端可接受的媒体类型,服务器可以根据此头部返回合适的内容
Authorization用于身份验证,包含凭证信息,如 BasicBearer token

请求体的常见类型

名称说明
表单数据(Form Data)application/x--www-form-urlencoded ,用于提交表单数据
多部分数据(Multipart Data)multipart/form-data,用于上传文件或复杂表单数据
JSON数据application/json ,用于提交 JSON 格式的数据
XML数据applicaiton/xml ,用于提交 XML 格式的数据
文本数据text/plain ,用于提交纯文本数据

请求体的常见参数

名称说明
application/x-www-form-unlencoded键值对形式的表单数据,通常用在简单表单提交
multipart-form-data处理复杂表单,包括文件上传、内容按边界分割
自定义数据格式根据 API 需求,可能需要提交 XML 、 JSON 、
甚至是二进制数据,不同的 Content-Type 可以表示数据格式

性能与安全

  • 缓存机制:通过 cache-controlETag 等头部,客户端和服务器可以有效管理缓存,减少不必要的请求
  • 压缩:content-Encoding 头部可以指定压缩方式,如 gzip ,以减少数据传输量
  • 安全性:AuthorizationCookie 等头部涉及身份验证和会话管理,应注意保护敏感信息,防止中间人攻击等安全威胁

3. HTTP 中 GET 和 POST 的区别是什么?

GET请求POST请求
HTTP 定义用于获取资源
通常用于请求数据二部改变服务器状态
用于提交数据到服务器
通常会改变服务器状态或产生创建资源等副作用
参数传递方式参数通过 URL 拼接传递,暴露在请求 URL中
具有可见性,长度有限,一般为 2048 字节左右
(取决于浏览器和服务器)
受 URL 长度限制,不适合大数据传输
参数放在请求体中,通常不可见
理论上长度没有限制,适合传递敏感信息和大量数据
POST 也可以在 URL 上面放参数
安全性参数可见,数据易暴露
不适合传递用户名密码等敏感信息
由于只获取数据,在 HTTP 方法中 GET 是安全的
数据放在请求体中,相对安全
配合 HTTPS 加密传输可进一步确保数据安全
由于可能改变服务器数据,在 HTTP 方法中 POST 是不安全的
幂等性具有幂等性
重复请求不会改变服务器状态
不具有幂等性
多次请求可能导致重复创建资源或执行多次相同操作
缓存机制可以被浏览器和 CDN 缓存
当请求同一个 URL 时可以直接返回缓存内容,减少服务器负载
适用于图片等不频繁变动的资源
由于 POST 请求通常会对服务器数据产生影响(如创建、修改数据)
大部分浏览器和缓存服务器都不缓存 POST 请求

原文地址:https://blog.csdn.net/Again_acme/article/details/145056581

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!