HTTP 协议的基本格式

目录

(一)HTTP是什么

(二)报文格式

(1)请求

①首行

1.URL

2.方法(method)

Ⅰ.GET

Ⅱ.POST

Ⅲ.PUT

Ⅳ.DELETE

3.版本号

②请求头(header)

1.键值对

Ⅰ.Host

Ⅱ.​​​​​​​Content-Length

Ⅲ.​​​​​​​Content-type

Ⅳ.​​​​​​​User-Agent

Ⅴ.​​​​​​​Referer

③空行(请求头结束的标志)

④请求正文(body)(有的有,有的没有)

(2)响应

①首行(状态行)

1.版本号

2.状态码

200 OK

301 Moved Permanently

302 Move Temporarily

403 Forbidden

404 Not Found

418

500 Internal Server

502 Bad Gateway

504 Gateway Timeout

②响应头(header)

③空行(响应报头结束的标志)

④正文(body)


(一)HTTP是什么

即“超文本传输协议”。

(二)报文格式

(1)请求

①首行

唯一资源定位符,描述了网络上的某个资源的具体位置。

1.URL

URL encode:URL的 query string 中的 value 部分,可能需要进行转义。

2.方法(method)

Ⅰ.GET
  1. HTTP中最常见方法,GET请求一般没有body。

  2. 实现幂等,就可实现缓存。

  3. 官方建议实现“幂等性”。

Ⅱ.POST
  1. 特点:有body用来传输数据。

  2. base64编码:通过这个把二进制内容转文本,从而减轻服务器负担。

  3. 触及场景:登录,上传资源、文件。

Ⅲ.PUT

        与POST相似,具有幂等性。

.DELETE
3.版本号

        Restful 风格的API设计。

请求头(header)

1.键值对
    • 键和值之间用“: ”来分割。

    • 标准规定的。

Ⅰ.​​​​​​​Host

        访问的服务器和端口。

Ⅱ.​​​​​​​Content-Length
  • 描述了body的长度。

  • 解决了“粘包问题”。

Ⅲ.​​​​​​​Content-type
  • 描述了body的数据格式。

  • 常见格式:

    • text/html

    • text/css

    • application/javascript

    • application/json

    • image/png

    • image/jpg

Ⅳ.​​​​​​​User-Agent

        所使用设备。

>>>响应式编程

Ⅴ.​​​​​​​Referer

        记录上一个页面。

Ⅵ.​​​​​​​Cookie

  • 键值对。

  • 浏览器在本地存储数据的一种机制。

  • 应用场景:

    • 保存没那么重要,但是有用的数据(也可以使用LacalStorage、IndexDB实现本地存储)

    • 流量标签

    • 保存用户的身份标识

>>>Cookie和会话(存储用户的详细信息)配合使用

③空行(请求头结束的标志)

④请求正文(body)(有的有,有的没有)

(2)响应

①首行(状态行)

1.版本号
2.状态码

  • 200 OK

        HTTP层面的成功,不代表业务层面的成功。

  • 301 Moved Permanently

        永久重定向。

  • 302 Move Temporarily

        临时重定向。

3开头的响应一般不会有body,但是会有location,表示接下来跳转到的页面

  • 403 Forbidden

        访问被拒绝(没有权限)。

  • 404 Not Found

        客户端访问的资源不存在。

  • 418

        I am a teapot

  • 500 Internal Server

        服务器抛出异常。

  • 502 Bad Gateway

        网关后面的服务器故障。

  • 504 Gateway Timeout

        服务器响应时间过长。

②响应头(header)

③空行(响应报头结束的标志)

④正文(body)

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

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

相关文章

计算机网络的基本概念-2

1、数据交换技术:电路交换、报文交换与分组交换网络核心部分的关键设备是路由器,其工作方式是分组交换。要理解分组交换,必须先了解其前两种技术。1. 电路交换 (Circuit Switching)核心思想:通信前必须预先建立一条专用的物理通路…

车载网络技术--SOME_IP协议详解

文章目录前言SOME/IP概念SOME/IP协议格式SOME/IP功能介绍序列化序列化规则发布和订阅服务发现(SOME/IP-SD)SOME/IP-TP协议使用场景SOME/IP-TP协议参考文章:前言 本文介绍了SOME/IP协议的具体内容,包括报文格式,协议选…

JVM 核心知识全解析:从类加载到垃圾回收的深度认知

什么是JVM? JVM全称(Java Virtual Machine),中译为:Java虚拟机 本质:是一个运行在计算机上的程序 职责:运行Java字节码文件(因为计算机只能认识机器码文件,所以需要JVM将…

Keepalived 负载均衡

Keepalived 负载均衡 Keepalived 可以与 LVS(Linux Virtual Server)结合,提供强大的四层负载均衡功能。它通过 IPVS(IP Virtual Server)内核模块实现高性能的负载分发。 核心组件 Virtual Server:虚拟服务器…

拷打DeepSeek实现自动生成差分电荷计算文件和后处理

差分电荷(charge density difference)是材料模拟中分析电子结构变化的直观工具。 它把成键后的真实电荷密度减去成键前各碎片叠加的电荷密度,得到一张“电子迁移地图” 于是可以一眼看出化学键形成时电子从哪里来到哪里去,表面吸…

AI问答-Nuxt4:什么时候发布的,有哪些特性,和Nuxt3相比 有哪些优势 / Nuxt4 / Nuxt-v4

Nuxt 4于2025年7月至8月期间正式发布,作为Nuxt框架的重大版本更新,其核心聚焦于稳定性提升、开发者体验优化及性能增强,与Nuxt 3相比,优势体现在项目结构、数据获取、类型系统、开发工具链等多个层面。一、Nuxt 4 发布时间线测试阶…

isinstance()和insubclass()

​​isinstance() 和 issubclass() 的功能与用法​​​​1. isinstance(obj, classinfo)​​​​功能​​:检查对象 obj 是否是 classinfo 类(或其子类)的实例。 ​​返回值​​:True 或 False。 ​​用法​​:class A…

判断QMetaObject::invokeMethod()里的函数是否调用成功

今天,在Qt编程,碰到一个需要使用invokeMethod方式来获取函数是否执行成功的情况。     invokeMethod()即可以同步调用,也可以异步调用。若调用者、被调用者,都在同一个线程,则是同步调用;若调用者、被调用…

【linux】特殊权限

us对文件:用户执行该文件时,会以文件所有者的权限运行chmod us filename # 符号模式 chmod 4755 filename # 数字模式(4表示SetUID)典型应用:/usr/bin/passwd(允许普通用户修改自己的密码,…

OpenCV:指纹识别

目录 一、核心算法 1:SIFT 特征提取(尺度不变特征变换) 1.1 算法原理(4 步核心流程) 1.2 重点代码实现与参数解析 1.3 关键输出解读 二、核心算法 2:FLANN 特征匹配(快速最近邻搜索&#x…

快速排序:高效的分治排序算法

快速排序因其平均时间复杂度$O(n\log n)$而成为广泛应用的高效排序算法。其核心是分治法: 选择基准 (Pivot):从待排序序列中选取一个元素(如第一个元素$arr[0]$)。 分区 (Partition):将序列重新排列,所有小于基准的元素置于其前,大于或等于的置于其后。基准元素最终位于…

网络编程之UDP广播与粘包问题

一,广播简介从上述讲的例⼦中,不管是TCP协议还是UDP协议,都是”单播”, 就是”点对点”的进⾏通信,如果要对网络里面的所有主机进⾏通信,实现”点对多”的通信,我们可以使用UDP中的⼴播通信。 理论上可以像…

教育领域大模型生成题目安全研究报告

教育领域大模型生成题目安全研究报告 一、研究背景与意义 随着大语言模型(LLM)在教育领域的深度应用,自动生成题目已成为提升教学效率、实现个性化教学的关键技术手段,广泛应用于课堂练习、作业布置、考试命题等场景。然而&…

Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡

Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡好的,我们来详细梳理一下 Android 开发中 Gradle 的常用配置和调试命令。这对于每一位 Android 开发者来说都是必须掌握的核心技能。第一部分:Gradle 与 Gr…

Maven入门_简介、安装与配置

ZZHow(ZZhow1024) 参考课程: 【尚硅谷新版Maven教程】 [https://www.bilibili.com/video/BV1JN411G7gX] 一、Maven简介 02_依赖管理工具 解决 jar 包的规模问题解决 jar 包的来源问题解决 jar 包的导入问题解决 jar 包之间的依赖 03_构建工具 我们没有注意过…

Spark(1):不依赖Hadoop搭建Spark环境

不依赖Hadoop搭建Spark环境0 概述1 单机安装Spark1.1 下载Spark预编译包1.2 解压和设置1.3 配置环境变量1.4 验证安装2 Spark运行模式2.1 Local模式(本地模式)2.1.1 Spark Shell2.1.1.1 Python版的Shell2.1.1.2 Scala版的Shell2.1.2 提交独立的Spark应用…

【ThreeJs】【自带依赖】Three.js 自带依赖指南

🛠️ Three.js 辅助库生态手册 定位:覆盖 90% 开发场景的工具选型实操指南,区分「入门必备」和「进阶扩展」。 适用人群:Three.js 新手(≥ r132 版本)、需要规范开发流程的团队。 1. 控制器(Co…

Mac电脑上如何打印出字体图标

背景 我今天打开了一个之前开发的APP,看到项目中用到了字体图标,发现有个“面条”图标用错了,想着修改一下吧。然后用输入法打出”面条“,在输入法的弹窗中就一直往下找,发现并没有出现图标。 想着打出”面条图标“也没…

当AI遇上数据库:Text2Sql.Net如何让“说人话查数据“成为现实

一句话概括:还在为写复杂SQL而头疼?Text2Sql.Net让你用自然语言就能查数据库,堪称程序员的"数据库翻译官"! 🎯 引言:从"SQL地狱"到"自然语言天堂" 想象一下这样的场景&…

整体设计 之 绪 思维导图引擎 之 引 认知系统 之8 之 序 认知元架构 之4 统筹:范畴/分类/目录/条目 之2 (豆包助手 之6)

问题Q68、我们现在仅仅分析了 认知演进 的 “进”的问题,通过层次结构 和 统筹 的同构约束 给出了 不同对象及其对应的操作和约束。 --这句话 你能完全理解吗(这意味着 完整的程序细节设计)。 还没有分析的还有 “演” 以及组合词 “演进” -…