【网络协议】【http】http 简单介绍

【网络协议】【http】http 简单介绍

1 HTTP 头部

HTTP 是一种请求-响应协议,客户端向服务器发送请求,服务器返回响应。

1.1 HTTP 状态码

状态码是服务器返回给客户端三位数字代码,用于表示请求的执行结果。
状态码按照首位数字分类:

类别范围描述
1xx100-199信息性状态码(Informational),表示请求已接收,服务器继续处理
2xx200-299成功状态码(Success),表示请求被成功处理
3xx300-399重定向状态码(Redirection),需要客户端采取进一步操作
4xx400-499客户端错误(Client Error),表示请求有错误
5xx500-599服务器错误(Server Error),表示服务器无法处理请求

1xx

提示信息

2xx

成功信息

  • [200 OK」
    是最常见的成功状态码,表示一切正常。
    如果是非HEAD请求,服务器返回的响应头都会有 body 数据。
  • [204 No Content」也是常见的成功状态码,与 200 OK 基本相同
    但响应头没有 body 数据。
  • [206 Partial Content」是应用于 HTTP 分块下载或断点续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。
3xx

重定向,状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源

  • [301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
  • [302 Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问
  • [304 Not Modified」不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,也就是告诉客户端可以继续使用缓存资源,用于缓存控制。
4xx

客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

  • [400 Bad Request」表示客户端请求的报文有错误,但只是个笼统的错误。
  • [403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。
  • [404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端.。
5xx

客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

  • [500 Internal Server Error」与 400 类型,是个笼统通用的错误码,服务器发生了什么错误,我们并不知道。
  • [501 Not lmplemented」表示客户端请求的功能还不支持,类似“即将开业,敬请期待”的意思。
  • [502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。
  • [503 Service Unavailable」表示服务器当前很忙,暂时无法响应客户端,类似“网络服务正忙,请稍后重试“的意思。

1.2 HTTP 头部属性

1.2.1 请求头(Request Headers)

请求头包含客户端发送给服务器的元信息,例如请求方法、资源路径、客户端信息等。

头字段英文名称示例值
请求方法MethodGET / POST / PUT / DELETE
请求资源URLRequest-URI/index.html / /api/data
协议版本HTTP VersionHTTP/1.1
客户端使用程序User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64)
服务器域名Hostwww.example.com
连接方式Connectionkeep-alive / close
接受数据格式Accepttext/html, application/json
接受压缩格式Accept-Encodinggzip, deflate, br
发送 CookieCookiesessionid=abcd1234
1.2.2 响应头(Response Headers)
头字段英文名称示例值
协议版本HTTP-VersionHTTP/1.1
状态码Status-Code200
状态信息Status-MessageOK
目标服务器Servernginx/1.18.0
数据长度Content-Length1024
数据格式Content-Typetext/html; charset=UTF-8
数据压缩方法Content-Encodinggzip
设置 CookieSet-Cookiesessionid=abcd1234; Path=/; HttpOnly

后续会写一下 http 1.0 1.1 2 3 如果有时间的话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈谈空间复杂度考量,特别是递归调用栈空间消耗?

空间复杂度考量是算法设计的核心要素之一,递归调用栈的消耗问题在前端领域尤为突出。 以下结合真实开发场景进行深度解析: 一、递归调用栈的典型问题 1. 深层次DOM遍历的陷阱 // 危险操作:递归遍历未知层级的DOM树 function countDOMNode…

LeetCode算法题(Go语言实现)_16

题目 给定一个二进制数组 nums 和一个整数 k&#xff0c;假设最多可以翻转 k 个 0 &#xff0c;则返回执行操作后 数组中连续 1 的最大个数 。 一、代码实现 func longestOnes(nums []int, k int) int {left, zeroCnt, maxLen : 0, 0, 0for right : 0; right < len(nums); …

【数据结构】栈 与【LeetCode】20.有效的括号详解

目录 一、栈1、栈的概念及结构2、栈的实现3、初始化栈和销毁栈4、打印栈的数据5、入栈操作---栈顶6、出栈---栈顶6.1栈是否为空6.2出栈---栈顶 7、取栈顶元素8、获取栈中有效的元素个数 二、栈的相关练习1、练习2、AC代码 个人主页&#xff0c;点这里~ 数据结构专栏&#xff0c…

攻破tensorflow,勇创最佳agent(2)---损失(loss) 准确率(accuracy)问题

实战播: 怎么判定一个模型好不好,你设置的值对不对? 需要再看几个值: 例如: model Sequential()for units in model_structure:model.add(Dense(units, activationrelu))model.add(Dropout(train_config.get(dropout_rate, 0.3)))model.add(Dense(1, activationsigmoid)) 他…

pdfh5 pdf

踩坑1&#xff1a; 渲染失败 &#xff08;1&#xff09;在vue项目中&#xff0c;读取本地的pdf文件需要放到public下static文件夹中&#xff0c;不能放在别的地方&#xff1b; &#xff08;2&#xff09;引用时&#xff0c;不能使用相对路径&#xff0c;因为使用public文件下…

6.5 模拟专题:LeetCode 38. 外观数列

1. 题目链接 LeetCode 38. 外观数列 2. 题目描述 给定一个正整数 n&#xff0c;生成外观数列的第 n 项。外观数列的定义如下&#xff1a; 第 1 项为 "1"。第 n 项是对第 n-1 项的描述。例如&#xff0c;第 2 项描述第 1 项&#xff08;"1"&#xff09;为…

什么是具身智能

具身智能&#xff08;Embodied Intelligence&#xff09;是人工智能与机器人学交叉的前沿领域&#xff0c;强调智能体通过身体与环境的动态交互实现自主学习和进化&#xff0c;其核心在于将感知、行动与认知深度融合‌。通俗地讲&#xff0c;就是机器人或者智能系统在物理环境中…

git命令使用小记(打补丁)

需求&#xff1a;需要从开发分支提取本人提交代码&#xff0c;然后合并到主分支 一、制作补丁包 mkdir -p patches for commit in $(git log commitA..commitB --author"username" --reverse --prettyformat:"%h"); do …

mapbox基础,加载popup弹出窗

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️popup 弹出窗 api1.3.1 ☘️构造函数1.…

C++11--(1)

目录 1.列表初始化 {}初始化 C98中 C11中 内置置类型和自定义类型 创建对象也适用 std::initializer_list 2.变量类型推导 auto C98 C11 decltype nullptr 3.范围for循环 4.STL中一些变化 array 1.创建和初始化 2.访问元素 ​编辑 3.修改操作 4.支持迭代器…

Promise的状态和方法是什么?

Promise 的状态和方法 1. Promise 的状态 一个 Promise 可以处于以下三种状态之一&#xff1a; - Pending&#xff08;待定&#xff09;&#xff1a;初始状态&#xff0c;表示异步操作正在进行中&#xff0c;Promise 还没有被解决或拒绝。 - Fulfilled&#xff08;已完成&…

Windows云服务器支持哪些数据库管理系统?

Windows云服务器因其良好的兼容性和企业级支持&#xff0c;广泛用于网站托管、企业管理系统、金融应用、数据分析等场景。在这些应用中&#xff0c;数据库管理系统(DBMS)起着至关重要的作用。Windows 服务器支持多种数据库&#xff0c;包括关系型数据库(SQL)和非关系型数据库(N…

MongoDB 实际工作中应用场景

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

03 相机标定图像采集

学完本文,您将获取一下技能: 1:如何提升标定质量,如选择标定板,标定图像采集的注意事项, 2:实现标定图像自动筛选的代码 3:量产场景如何通过一张图像来标定相机 为了实现良好的标定效果,以下因素在标定数据采集前必须设置得当。 标定板选择 标定板尺寸准确材料平…

GitHub美化个人主页3D图表显示配置操作

这个功能主要是用的这个开源仓库&#xff1a;https://github.com/yoshi389111/github-profile-3d-contrib 想看效果的话&#xff0c;我的个人主页&#xff1a;https://github.com/Sjj1024 开始操作 1.创建自己的github主页属性项目——跟你github用户名一致即可&#xff0c;…

buu-jarvisoj_fm-好久不见52

格式化字符串漏洞题 x等于4x等于4​​​​​​​x等于4​​​​​​​x等于4 可以知道是第11个参数&#xff0c;%11$ 定位到这个位置&#xff0c;然后%n往这个位置写入4 1.先用pwndbg调试得到偏移量 2.查看获取x的地址 3.构造ROP链&#xff0c;发送连接 from pwn import *# …

AwesomeQt分享3(含源码)

AwesomeQt 这个项目包含了多个Qt组件的使用示例&#xff0c;旨在展示Qt各种强大功能的实现方式。 源码分享 github: awesome_Qtgitee: 后续同步 项目进度 QCustomPlot曲线控件示例 支持排序和筛选的列表控件示例 支持排序和筛选的表格控件示例 属性表示例 Dock窗口示例 自绘…

ubuntu 安装 g++

文章目录 前提一、安装 g1.1 安装1.2 验证 前提 安装 tflite_support 报错 error: subprocess-exited-with-error RuntimeError: Unsupported compiler -- at least C11 support is needed!一、安装 g 1.1 安装 # 安装编译工具链&#xff08;如g&#xff09;和依赖库 sudo …

【NLP 50、损失函数 KL散度】

目录 一、定义与公式 1.核心定义 2.数学公式 3.KL散度与交叉熵的关系 二、使用场景 1.生成模型与变分推断 2.知识蒸馏 3.模型评估与优化 4.信息论与编码优化 三、原理与特性 1.信息论视角 ​2.优化目标 3.​局限性 四、代码示例 代码运行流程 核心代码解析 抵达梦想靠的不是狂热…

使用QT画带有透明效果的图

分辨率&#xff1a;24X24 最大圆 代码: #include <QApplication> #include <QImage> #include <QPainter>int main(int argc, char *argv[]) {QImage image(QSize(24,24),QImage::Format_ARGB32);image.fill(QColor(0,0,0,0));QPainter paint(&image);…