当前位置: 首页 > news >正文

【刷题Day18】HTTP状态码与请求(浅)

常见的 HTTP 状态码有哪些?

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

  • 1xx:信息相应
    • 100 Continue:服务器已接受请求的初步部分,客户端应继续请求。
    • 101 Switching Protocols:服务器同意切换协议,如从HTTP切换到WebSocket
  • 2xx:成功
    • 200 OK:请求成功,服务器返回所请求的资源或数据
    • 201 Created:请求成功并创建了新的资源,常用于POST请求。
    • 204 No Content:请求成功但服务器不返回任何内容,常用于删除操作。
  • 3xx:重定向
    • 301 Moved Permanently:资源已永久移动到新的URL,客户端应使用新URL访问。
    • 302 Found:资源临时移动到新的URL,客户端应继续使用原来的URL。
    • 304 Not Modified:资源未修改,客户端可以使用缓存版本。
  • 4xx:客户端错误
    • 400 Bad Request:请求无效或语法错误,服务器无法处理。
    • 401 Unauthorized:请求需要身份验证,客户端未提供有效的凭证。
    • 403 Forbidden:服务器理解请求但拒绝执行,通常是权限问题。
    • 404 Not Found:请求的资源在服务器上未找到。
  • 5xx:服务器错误
    • 500 Internal Server Error:服务器内部错误,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效响应。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是因为过载或维护。

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

HTTP请求由以下几部分组成:

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

常见的请求头类型:

  • 通用头部(General Headers):适用于请求和响应,如Cache-Control、Connection等。
  • 请求头部(Request Headers):特定于请求的头部,如Host、User-Agent、Accept、Authorization等。
  • 实体头部(Entity Headers):描述请求体的头部,如Content-Type、Content-Length。

请求体的类型:

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

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

维度GETPOST
HTTP定义用于获取资源,通常用于请求数据而不改变服务器状态用于提交数据到服务器,通常会改变服务器的状态或产生副作用(如创建或更新资源)
参数传递方式(应用中)参数通过URL拼接传递,暴露在请求URL中,具有可见性,长度有限(取决于浏览器和服务器)参数放在请求体中,通常不可见且长度理论上没有限制,更适合传递大量数据(但是注意,POST也可以在URL上放参数)
安全性(应用中)参数可见,数据容易暴露在浏览器历史记录、日志和缓存中,不适合传递敏感信息。数据放在请求体中,相对安全,但需要HTTPS才能保证数据加密传输。
幂等性(应用中)幂等(重复请求不会改变服务器状态)非幂等(多次请求可能导致重复创建资源或执行多次相同操作)

相关文章:

  • Leetcode 3359. 查找最大元素不超过 K 的有序子矩阵【Plus题】
  • dumpsys--音频服务状态信息
  • GUI GUIDIER8.2版本兼容8.3.1版本
  • SLAM | 激光SLAM中的退化问题
  • Linux系统中的Perf总结
  • LabVIEW 开发:永不落幕的求知之旅​
  • 【C++初阶】--- list容器功能模拟实现
  • 【AI】以Llama模型为例学习如何进行LLM模型微调
  • HttpSessionBindingListener 的用法笔记250417
  • 【LLM Prompt】CoT vs.ToT
  • Unity编辑器扩展之项目资源查找工具
  • std::unordered_map(C++)
  • 量子计算:开启未来科技之门的钥匙
  • 【网络】IP层的重要知识
  • C++笔记-list
  • yolov8复现
  • Redis List 的详细介绍
  • Socket通信的基本概述
  • 视线估计的相关研究
  • PHP 文件上传
  • 端午假期购票日历发布,今日可购买5月29日火车票
  • 陕西一村民被冒名贷款40余万续:名下已无贷款,将继续追责
  • 中国海警舰艇编队5月14日在我钓鱼岛领海巡航
  • 内塔尼亚胡:以军将在未来几天“全力进入”加沙
  • 专访|茸主:杀回UFC,只为给自己一个交代
  • 尊严的代价:新加坡福利体系下的价值困境