HTTP:HTTP报文

news2024/12/22 19:34:11

HTTP:HTTP报文

  • 1. 报文流
    • 1.1 报文流入源端服务器
    • 1.2 报文向下游流动
    • 1.3 报文的组成部分
      • 1.3.1 报文的语法
      • 1.3.2 起始行
        • 1. 请求行
        • 2. 响应行
        • 3. 方法
        • 4. 状态码

如果说HTTP是因特网的信使,那么HTTP报文就是用它来搬东西的包裹了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1. 报文流

HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容以及含义,后面跟着可选的数据部分。这些报文在客户端、服务器和代理之间流动。 术语“流入”、“流出”、“上游”、“下游”都是描述报文方向的。

1.1 报文流入源端服务器

HTTP使用术语流入和流出来描述事务处理的方向。报文流入源端服务器,工作完成之后,会流回用户的Agent代理中。

在这里插入图片描述

1.2 报文向下游流动

HTTP报文会像河水一样流动。不管是请求报文还是响应报文,所有报文都会向下游(downstream)流动。所有报文的发送者都在接收者的上流。在图中对请求报文来说,代理1位于代理3的上流,但对影响报文来说,它就位于代理3的下游。
在这里插入图片描述

1.3 报文的组成部分

HTTP报文是简单的格式化数据块。每条报文都包含一条来自客户端的请求,或者一条来自服务器的响应。它由三部分组成:对报文进行描述的起始行、包含属性的首部块,以及可选的、包含数据的主体部分。
在这里插入图片描述

1.3.1 报文的语法

所有的HTTP报文可以分为两类:请求报文和响应报文。请求报文会向Web服务器请求一个动作。响应报文会将请求的结果返回给客户端。请求和响应的报文的基本报文结构相同。
在这里插入图片描述

1.3.2 起始行

所有的HTTP报文都以一个起始行作为开始。请求报文的起始行说明了要做些什么。相应报文的起始行说明发生了什么。

1. 请求行

请求报文,请求服务器对资源进行一些操作。请求报文的起始行,或称为请求行,包含了一个方法和一个请求 URL,这个方法描述了服务器应该执行的操作,请求 URL描述了要对哪个资源执行这个方法。请求行中还包含 HTTP 的版本,用来告知服务器,客户端使用的是哪种 HTTP。

所有这些字段都由空格符分隔。在图a中请求方法为GET,请求URL为/test/hi-there.txt,版本为HTTP/1.0,在HTTP1.0之前,并不要求请求航中包含HTTP版本号。
在这里插入图片描述

2. 响应行

响应报文承载了状态信息和操作产生的所有结果数据,将其返回给客户端。响应报文的起始行,或称为响应行,包含了响应报文使用的 HTTP 版本、数字状态码,以及描述操作状态的文本形式的原因短语。

所有这些字段都由空格符进行分隔。在图b中,HTTP 版本为 HTTP/1.0,状态码为 200(表示成功),原因短语为 OK,表示文档己经被成功返回了。在 HTTP/1.0之前,井不要求在响应中包含响应行。

3. 方法

请求的起始行以方法作为开始,方法用来告知服务器要做些什么。比如,在行GET /specials/saw-blade.gif HTTP/1.0 中,方法就是 GET。

HTTP 规范中定义了一组常用的请求方法。比如,GET 方法负责从服务器获取一个文档,POST 方法会向服务器发送需要处理的数据,OPTIONS 方法用于确定Web服务器的一般功能,或者 Web 服务器处理特定资源的能力。

表 3-1描述了7种这样的方法。注意,有些方法的请求报文中有主体,有些则是无主体的请求。
在这里插入图片描述

4. 状态码

// TODO

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

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

相关文章

最新国内免费使用GPT4教程,GPT语音对话使用,Midjourney绘画

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GP…

PHP字符串解析特性绕过WAF

[RoarCTF 2019]Easy Calc 题目的突破点: 只能传入数字和运算符号,不能传入字符(想办法绕过waf) 方法1. php解析规则:当php进行解析时,如果变量名前面有空格,php会自动去掉前面的空格再进行…

轻松搭建知识付费小程序:让知识传播更便捷

明理信息科技saas知识付费平台 在当今数字化时代,知识付费已经成为一种趋势,越来越多的人愿意为有价值的知识付费。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。同时,开发和维护…

打破Tomcat中的双亲委派机制:探讨与实践

目录 引言 1. 双亲委派机制概述 2. 打破双亲委派机制的场景 3. Tomcat中的类加载器体系 4. 打破双亲委派机制的方法 4.1 在catalina.properties中配置common.loader 4.2 在META-INF/context.xml中配置Loader元素 4.3 编写自定义的类加载器 5. 潜在的问题与解决方案 5…

Shell编程自动化之特殊Shell扩展变量

1.变量的处理 1.1 如果parameter变量值为空,那么返回str字符串。 ${parameter:-str} 1.2 如果parameter变量值为空,那么str替代变量值,且返回其值。 ${parameter:str} 1.3 如果parameter变量值为空,那么str当作stderr输出&am…

Django 简单图书管理系统

一、图书需求 1. 书籍book_index.html中有超链接:查看所有的书籍列表book_list.html页面 2. 书籍book_list.html中显示所有的书名,有超链接:查看本书籍详情book_detail.html(通过书籍ID)页面 3. 书籍book_detail.html中书的作者和出版社&…

现代雷达车载应用——第3章 MIMO雷达技术 3.2节 汽车MIMO雷达波形正交策略

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.2 汽车MIMO雷达波形正交策略 基于MIMO雷达技术的汽车雷达虚拟阵列合成依赖于不同天线发射信号的可分离性。当不同天线的发射信号正交时&#x…

德人合科技 | 设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统

设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统 PC端访问地址: www.drhchina.com 一、背景介绍 设计公司通常涉及到大量的创意作品、设计方案、客户资料等重要文件,这些文件往往包含公司的核心价值和商业机密。因此,如何确保…

百年东芝“瞄准”汽车「芯」机遇

在汽车“新四化”大变革的驱动下,汽车半导体市场进入需求暴涨的新周期。 “智能电动汽车所需要的半导体种类和数量正在急剧增加。” 东芝电子分立器件应用技术部经理成栋表示,东芝电子正在加大汽车半导体市场的布局,从而满足汽车电动化、智能…

[node]Node.js 中REPL简单介绍

[node]Node.js 中REPL简单介绍 什么是REPL为什么使用REPL如何使用REPL 命令REPL模式node的全局内容展示node全局所有模块查看全局模块具体内容其它命令 实践 什么是REPL Node.js REPL(Read Eval Print Loop:交互式解释器) 表示电脑的环境,类似 Windows 系统的终端或…

在x64上构建智能家居(home assistant)(二)(新版Debain12)连接Postgresql数据库

新版数据库安装基本和旧版相同,大部分可以参考旧版本在x64上构建智能家居(home assistant)(二)连接Postgresql数据库_homeassist 数据库-CSDN博客 新版本的home assistant系统安装,我在原来写的手顺上直接修改了,需要的可以查看在x64上构建智能家居(home…

vivado 主时钟分析

主时钟 主时钟是通过输入端口或千兆位进入设计的板时钟收发器输出引脚(例如恢复的时钟)。主时钟只能由create_clock命令定义。主时钟必须附加到网表对象。此网表对象表示中的点所有时钟边沿源自其并在时钟树上向下游传播的设计。换句话说,主…

深入理解 Rust 中的容器类型及其应用

Rust 作为一种系统编程语言,提供了丰富的容器类型来处理各种数据结构和算法。这些容器类型不仅支持基本的数据存储和访问,还提供了高效的内存管理和安全性保障。本文将详细介绍 Rust 中的几种主要容器类型,包括它们的用法、特点和适用场景&am…

使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理

背景 在上一篇文章中,我们已经了解到华为即将发布的鸿蒙操作系统纯血版本——鸿蒙 Next,以及各个互联网厂商开展鸿蒙应用开发的消息。其中,Taro作为一个重要的前端开发框架,也积极适配鸿蒙的新一代语言框架 —— ArkTS。 本文将…

力扣每日一题day37[113.路径总和ii]

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

推荐一个vscode看着比较舒服的主题:Dark High Contrast

主题名称:Dark High Contrast (意思就是,黑色的,高反差的) 步骤:设置→Themes→Color Theme→Dark High Contrast 效果如下: 感觉这个颜色的看起来比较舒服。

jetbrains idea 报错 java.lang.ClassNotFoundException 之后自动搜索包导入包

-- 搜索类所在的包 导入包 搜索包 mac环境 pom中右键或者 cmdn

CSS:盒子模型

CSS:盒子模型 盒子模型盒子模型的组成盒子内容边框 border内边距 padding盒子实际大小计算CSS3的盒子类型content-boxborder-box 外边距 margin外边距合并相邻块元素垂直外边距合并嵌套块元素垂直外边距塌陷 行内元素的内外边距 盒子相关属性圆角边框盒子阴影 盒子模…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist,用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前…

黑马点评09 秒杀功能总结

1.整体业务流程 1.1 redis判断流程 (单线程) 1.首先获取订单id和用户id,调用lua脚本进行redis操作,lua内包括 对购买资格/库存充足的判断 、 扣库存下单、发送订单消息到Stream。 2.Stream组成消息队列,有异常自动放到…