Linux -- HTTP 请求 与 响应 报文

news2025/1/21 6:55:02

目录

请求报文: 

请求方法

响应报文:

状态码 与 状态码描述 

共性

常见的报头


请求报文: 

请求方法

方法说明
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)的功能

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

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

相关文章

小米平板pad6工程固件界面预览 修复tee损坏 修复底层分区 开diag端口

💝💝💝小米平板pad6 机型代码pipa。采用一块分辨率为 2880*1800p,支持 120/144Hz 高刷新率的国产屏,并且屏幕支持 HDR10 + 以及杜比视界。分别搭载 SM8250AC(骁龙 870)、SM8475(骁龙 8+)处理器。也适用于以下型号的小米机型:23043RP34G, 23043RP34I, 23043RP34C等…

day03_开发前准备和匹配类标签

文章目录 day03_开发前准备和匹配类标签一、标签体系(了解)二、数据导入(操作)1、背景介绍(重要)2、创建Hive表2.1 dwm_sold_goods_sold_dtl_i2.2 dwm_sell_o2o_order_i**2.3 dwd_mem_member_union_i**2.4 dwm_mem_member_behavior_day_i**2.5 dwm_mem_first_buy_i**3、数…

STM32之FreeRTOS开发介绍(十九)

STM32F407 系列文章 - freertos(十九) 目录 前言 一、简述 二、开源网址 三、原理及功能特性 1.原理 2.功能 3.特点 4.优缺点 四、参考书籍 五、实现方式 总结 前言 FreeRTOS是一个免费的、开源的实时操作系统,专为微控制器和嵌入…

第十三章:数据库技术

文章目录: 一:基础 1.概念 2.特点 3.常见数据库品牌 4.数据库应⽤系统 4.1 C/S 4.2 B/S 5.数据模型的分类 6.名词解析 7.关系运算 二:Access 1.基础 2.操作 2.1 建立表 2.2 维护表 2.3 创建查询 2.4 创建窗体 2.5 创建报表…

stm32 no connect target

解决 STM32 报错 “no target connected” 的方法 前言 stm32最小系统在下载程序是一直报错:no target connected,试了很多办法成功不了,最后将芯片擦除了才成功。 一、问题描述 当时是写flash的时候写到ST Link 存储的地方了。 之后就不…

综述:大语言模型在机器人导航中的最新进展!

简介 机器人导航是指机器人能够在环境中自主移动和定位的能力。本文系统地回顾了基于大语言模型(LLMs)的机器人导航研究,将其分为感知、规划、控制、交互和协调等方面。具体来说,机器人导航通常被视为一个几何映射和规划问题&…

OpenHarmony-7.IDL工具

IDL 工具 1.openharmony IDL工具 在OpenHarmony中,当应用/系统服务的客户端和服务端进行IPC(Inter-Process Communication)跨线程通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony ID…

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具,Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…

人工智能之数学基础:线性代数中的线性相关和线性无关

本文重点 在线性代数的广阔领域中,线性相关与线性无关是两个核心概念,它们对于理解向量空间、矩阵运算、线性方程组以及人工智能等问题具有至关重要的作用。 定义与直观理解 当存在一组不全为0的数x1,x2,...,xn使得上式成立的时候,那么此时我们可以说向量组a1,a2...,an…

【Django】多个APP设置独立的URL

目录 方法一:各个App下设置自己的URL 1、在各自的App当中创建urls.py文件​编辑 2、在主urls当中包含子url 3、各App的urls中设置url 4、设置后台函数 5、最终结果 总结: 方法二:利用as方法,在总的URL中对views重命名 实…

函数递归的介绍

1.递归的定义 在C语言中,递归就是函数自己调用自己 上面的代码就是 main 函数在函数主体内 自己调用自己 但是,上面的代码存在问题:main 函数反复地 自己调用自己 ,不受限制,停不下来。 最终形成死递归,…

四、华为交换机 STP

生成树协议(STP)的核心目的是在存在冗余链路的网络中,构建一个无环的拓扑结构,从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥:网络中的每台交换机都会有一个唯一的桥 ID(BID)&am…

前端炫酷动画--图片(一)

目录 一、四角线框的跟随移动 二、元素倒影(-webkit-box-reflect) 三、模特换装(maskblend) 四、元素平滑上升 五、无限视差滚动 六、判断鼠标进入方向(轮播方向) 七、环形旋转效果 八、黑白小球交替旋转 九、hover时圆形放大 十、画一棵随机树(canvas) 十一、代码雨…

AI刷题-病毒在封闭空间中的传播时间

目录 问题描述 输入格式 输出格式 解题思路: 问题理解 数据结构选择 算法步骤 代码实现: 1.初始化: 2.设置边界条件: 3.判断 4.更新: 5.返回 最终的实现代码如下: 运行结果: …

SQL表间关联查询详解

简介 本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(left join)、右连接(right join)、全连接(full join)、内连接(inner join)、交叉连接&…

路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)

近期因公司新办公区建设,原有的爱快路由器的SDWAN功能实现分支之间互联的服务还需要继续使用。在原有的小型网络中,使用的爱快路由器当作网关设备,所以使用较为简单,如下图所示。 现变更网络拓扑为三层网络架构,但原有的SDWAN分支…

麦田物语学习笔记:制作[SceneName]Attribute特性

基本流程 因为在现有的项目中,像开始场景的切换或者Telepot组件都需要手动输入场景名,有时还可能键入出错,而该特性能用选择的方式去解决这一问题 1.代码实现 SceneNameDrawer.cs //参数绘制 using UnityEditor; using UnityEngine; #if UNITY_EDITOR [CustomPropertyDrawer(…

HTML之拜年/跨年APP(改进版)

目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…

【2024 年度总结】从小白慢慢成长

【2024 年度总结】从小白慢慢成长 1. 加入 CSDN 的契机2. 学习过程2.1 万事开头难2.2 下定决心开始学习2.3 融入技术圈2.4 完成万粉的目标 3. 经验分享3.1 工具的选择3.2 如何提升文章质量3.3 学会善用 AI 工具 4. 保持初心,继续前行 1. 加入 CSDN 的契机 首次接触…

一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用

一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用 1. 建议按文章顺序从头看是看 第一篇:一文大白话讲清楚啥是个webpack第二篇:一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建然后看本篇,Loader的配置…