Linux -- HTTP 请求 与 响应 报文

目录

请求报文: 

请求方法

响应报文:

状态码 与 状态码描述 

共性

常见的报头


请求报文: 

请求方法

方法说明
GET获取资源
POST传输实体主体
PUT传输文件
HEAD获得报文首部
DELETE删除文件
OPTIONS询问支持的方法
TRACE追踪路径
CONNECT要求用隧道协议连接代理
LINK建立和资源之间的联系
UNLINK断开连接关系

响应报文:

如果服务器返回了一个 html 页面, 那么 html 页面内容 就是在 响应正文 中.

状态码 与 状态码描述 

分类状态码含义解释
信息性响应 (1xx):请求已被接收,继续处理。

100 

Continue初步请求已被接受,客户应当继续发送请求的剩余部分。
101 Switching Protocols服务器已经理解了客户端的请求,并将通过升级协议的方式继续处理。
成功响应 (2xx):动作已成功完成。

200 

OK请求成功,所请求的响应头或数据体将随此响应返回。
201 Created请求成功并且服务器创建了新的资源。
204 No Content请求成功但服务器没有需要返回的内容。
重定向响应 (3xx):需要进一步操作以完成请求。

301 

Moved Permanently请求的网页已永久移动到新位置。
302 Found请求的网页临时从不同的URL响应。
304 Not Modified自从上次请求后,请求的网页未被修改过。
客户端错误 (4xx):请求包含语法错误或者无法完成。

400 

Bad Request服务器无法处理由于客户端请求语法错误而导致的请求。
401 Unauthorized请求要求用户的身份认证。
403 Forbidden即使提供身份验证凭据,服务器也拒绝处理请求。
404 Not Found服务器找不到请求的网页。
服务器错误 (5xx):服务器未能完成明显有效的请求。500 Internal Server Error服务器遇到了一个未曾预料的情况,导致了它无法完成对请求的处理。
501 Not Implemented服务器不支持当前请求所需要的某个功能。
502 Bad Gateway服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable服务器暂时无法处理请求,可能因为过载或维护。

共性

怎么分离报头和有效载荷?

空行可以保证在读取报头时,把报头读完。

怎么判断已经把正文读完?

在报头中,会记录正文的长度 Content-Length,在读取正文时,根据正文长度来判断是否已经把正文读完了。如果报文中没有正文,则不会出现该字段。

为什么需要 HTTP 版本?

一个应用会存在新老版本并存的情况,在更新新版本时,不仅客户端需要更新,服务器也需要更新,如果服务器都更新成新版本,但有的客户端还停留在旧版本,那么服务器给客户端提供服务时,也就是服务器和客户端在进行网络通信时,通信可能会出现问题,比如旧版本的客户端不支持新功能。为了确保客户端和服务器之间能够正确地通信,需要在HTTP报文中携带版本号,有了 HTTP 版本后,新版本的客户端就和新版本的服务器匹配,老版本的客户端就和老版本的服务器匹配。

常见的报头

Content-Type数据类型,常见的值包括 text/htmlapplication/jsonapplication/xml 等。
Content-Length正文的长度
Host客户端告知服务器,所请求的资源在哪个主机的哪个端口上
User-Agent声明用户的操作系统和浏览器版本信息
referer当前页面是从哪个页面跳转来的
Location搭配 3XX 状态码使用,告诉客户端接下来要去哪里访问
Cookie用于在客户端存储少量信息,通常用于实现会话(session)的功能

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML<img>标签

例子 如何插入图片&#xff1a; <img src"img_girl.jpg" alt"Girl in a jacket" width"500" height"600"> 下面有更多“自己尝试”的示例。 定义和用法 该<img>标签用于在 HTML 页面中嵌入图像。 从技术上讲&#x…

C++ 面向对象(继承)

三、继承 3.1 继承的概念 基于一个已有的类 去重新定义一个新的类&#xff0c;这种方式我们叫做继承 关于继承的称呼 一个类B 继承来自 类 A 我们一般称呼 A类&#xff1a;父类 基类 B类: 子类 派生类 B继承自A A 派生了B 示例图的语法 class vehicle // 车类 {}class …

mfc操作json示例

首先下载cJSON,加入项目; 构建工程,如果出现, fatal error C1010: unexpected end of file while looking for precompiled head 在cJSON.c文件的头部加入#include "stdafx.h"; 看情况,可能是加到.h或者是.cpp文件的头部,它如果有包含头文件, #include &…

基于微信小程序的模拟考试系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Android10.0定制服务 APK安装或者更新过自动打开APK

需求描述 当用户APK安装|更新 成功之后自动打开APK。 实现思路 编写服务 注册接受安装广播 并判断安装的APK包名是否为客户APK包名,并自动打开。 具体实现 diff --git a/android/build/make/core/tasks/check_boot_jars/package_whitelist.txt b/android/build/make/cor…

linux 下tensorrt的yolov8的前向推理(python 版本)的实现

一、yolov8的python实现的环境搭建 #通过pip安装 pip install ultralytics #通过git克隆GitHub仓库 git clone <https://github.com/ultralytics/ultralytics.git> cd ultralytics #安装依赖 pip install -r requirements.txt #执行推理 yolo predict model./yolov8n.pt …

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布

1、OpenAI 的安全疏忽&#xff1a;ChatGPT API 漏洞引发DDoS风险 德国安全研究员 Benjamin Flesch 发现了一个严重的安全漏洞&#xff1a;攻击者可以通过向 ChatGPT API 发送一个 HTTP 请求&#xff0c;利用 ChatGPT 的爬虫对目标网站发起 DDoS 攻击。该漏洞源于 OpenAI 在处理…

【数据挖掘实战】 房价预测

本次对kaggle中的入门级数据集&#xff0c;房价回归数据集进行数据挖掘&#xff0c;预测房屋价格。 本人主页&#xff1a;机器学习司猫白 机器学习专栏&#xff1a;机器学习实战 PyTorch入门专栏&#xff1a;PyTorch入门 深度学习实战&#xff1a;深度学习 ok&#xff0c;话不多…

ElasticSearch 学习课程入门(一)

引子 前文已经介绍了windows下如何安装ES&#xff0c;接下来的文章我会边学习边记录。OK&#xff0c;那就让我们开始吧。 一、ES基础操作 1、预备知识 &#xff08;1&#xff09;RESTful REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 …

QML Binding和Qt.binding详解

一、Binding详解 1、介绍 QML Binding是一种声明式的编程概念&#xff0c;它允许在Qt Quick应用中自动更新属性之间的关系。通过使用Binding&#xff0c;我们可以在属性之间建立依赖关系&#xff0c;当其中一个属性的值发生变化时&#xff0c;绑定的属性会自动更新。QML Bind…

【优选算法】3----快乐数

这是第三篇算法题&#xff0c;也是十分的不好想&#xff0c;虽然定位在简单&#xff0c;但我感觉还是有些难度的~ -------------------------------------begin----------------------------------------- 题目解析&#xff1a; 同样的&#xff0c;这道算法题&#xff0c;看题…

计算机网络 (52)秘钥分配

一、重要性 在计算机网络中&#xff0c;密钥分配是密钥管理中的一个核心问题。由于密码算法通常是公开的&#xff0c;因此网络的安全性主要依赖于密钥的安全保护。密钥分配的目的是确保密钥在传输过程中不被窃取或篡改&#xff0c;同时确保只有合法的用户才能获得密钥。 二、方…

Docker Load后存储的镜像及更改镜像存储目录的方法

Docker Load后存储的镜像及更改镜像存储目录的方法 Docker Load后存储的镜像更改镜像存储目录的方法脚本说明注意事项Docker作为一种开源的应用容器引擎,已经广泛应用于软件开发、测试和生产环境中。通过Docker,开发者可以将应用打包成镜像,轻松地进行分发和运行。而在某些场…

【三国游戏——贪心、排序】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e510; int a[N], b[N], c[N]; int w[4][N]; int main() {int n;cin >> n;for(int i 1; i < n; i)cin >> a[i];for(int i 1; i < n; i)cin >> b[i…

unity——Preject3——摄像机动画

1.当预设体有改动时候记住要应用一下 2.创建摄像头动画步骤 3.动画相关设置 取消动作循环 4. Hax Exit Time 讲解 在Unity的Animator Controller中&#xff0c;"Has Exit Time" 是一个用于控制状态转换的选项。它决定了当前状态是否需要在转换到下一个状态之前完成…

从零开始:Gitee 仓库创建与 Git 配置指南

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…

磁盘阵列服务器和普通服务器的区别

磁盘阵列服务器&#xff08;RAID Server&#xff09;和普通服务器在多个方面存在显著区别。以下是它们的主要区别&#xff1a; 1. 存储架构 磁盘阵列服务器 RAID 技术&#xff1a;使用 RAID&#xff08;冗余独立磁盘阵列&#xff09;技术&#xff0c;将多个硬盘组合成一个逻…

光谱相机如何还原色彩

多光谱通道采集 光谱相机设有多个不同波段的光谱通道&#xff0c;可精确记录每个波长的光强信息。如 8 到 16 个甚至更多的光谱通道&#xff0c;每个通道负责特定波长范围的光信息记录。这使得相机能分辨出不同光谱组合产生的相同颜色感知&#xff0c;而传统相机的传感器通常只…

Kubernetes 集群中安装和配置 Kubernetes Dashboard

前言 上篇成功部署Kubernetes集群后&#xff0c;为了方便管理和监控集群资源&#xff0c;安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI&#xff0c;旨在让用户轻松地部署容器化应用到 Kubernetes 集群&#xff0c;并对这些应用进…

C ++ 也可以搭建Web?高性能的 C++ Web 开发框架 CPPCMS + MySQL 实现快速入门案例

什么是CPPCMS&#xff1f; CppCMS 是一个高性能的 C Web 开发框架&#xff0c;专为构建快速、动态的网页应用而设计&#xff0c;特别适合高并发和低延迟的场景。其设计理念类似于 Python 的 Django 或 Ruby on Rails&#xff0c;但针对 C 提供了更细粒度的控制和更高效的性能。…