HTTP请求交互基础(基于GPT3.5,持续更新)

HTTP交互基础

  • 目的
    • HTTP定义
    • 详解HTTP协议(规范)
      • 1. 主要组成部分
        • 1.1 请求行(Request Line):包含请求方法、请求URI(Uniform Resource Identifier)和HTTP协议版本。
        • 1.2 请求头部(Request Headers):在请求中,客户端可以通过请求头部携带额外的信息给服务器。请求头部包含了一系列的字段,用于描述请求的附加信息,例如用户代理、内容类型、授权信息等。
          • 1.2.1 头部Header中,常见的几个字段
          • 1.2.2 头部字段 Content-Type 常见媒体类型扩展
        • 1.3 请求体(Request Body)某些请求方法,如 POST 或 PUT,可以在请求体中携带数据。请求体一般用于向服务器提交表单数据、上传文件等。
          • 1.3.1 常见的请求体格式
          • 1.3.2 POST 扩展 前后端常见问题
            • 1. 传文件加其他参数
            • 2. 只传参数
      • 三级目录

目的

对前端交互相关请求,协议缺乏稳固的基础知识,gpt正好适合问基础知识,通过询问gpt3.5进行学习,写一篇笔记补充补充

HTTP定义

  1. 什么是HTTP?
    • Http全称(HyperText Transfer Protocol)超文本传输协议 超文本:是一种通过链接将相关信息组织起来的非线性文本形式。它通过超链接连接不同的文本或资源,使得用户可以在阅读过程中自由地跳转和浏览相关内容,提供更加丰富和智能化的阅读体验。
    • 是一种用于客户端和服务器之间传输数据的应用层协议。协议就是一种规范

详解HTTP协议(规范)

1. 主要组成部分

1.1 请求行(Request Line):包含请求方法、请求URI(Uniform Resource Identifier)和HTTP协议版本。
  • 请求方法:HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,在RESTful架构中常用的是POST、GET、PUT、DELETE
请求方法作用于
POST常用于新增
GET常用于查询
PUT常用于编辑
DELETE常用于删除
  • URI 统一资源标识符号(Uniform Resource Identifier),URI包括两种类型:URL和URN。
类型描述
URL(Uniform Resource Locator)URL是URI的一种,它指定了互联网上的资源的位置以及访问该资源的方式。换句话说,URL是访问Web页面或其他Web资源的地址,它由协议、主机名、路径等部分组成。举个例子,http://www.example.com/index.html就是一个URL。
URN(Uniform Resource Name)URN也是URI的一种,它与URL不同的是,URN仅仅是为一个资源分配一个唯一的名字,不涉及定位资源的具体位置。URN作为一个名字,可以持久的指向一个特定的资源,无论它被移动到哪个位置。URN还没有被广泛使用,目前只在某些特定的场景下使用,如在元数据中引用资源。
1.2 请求头部(Request Headers):在请求中,客户端可以通过请求头部携带额外的信息给服务器。请求头部包含了一系列的字段,用于描述请求的附加信息,例如用户代理、内容类型、授权信息等。
1.2.1 头部Header中,常见的几个字段
字段描述
Content-Type指定请求体的媒体类型,如application/json、application/x-www-form-urlencoded等
Content-Length指定请求体的长度,以字节为单位
User-Agent标识发出请求的客户端应用程序或浏览器的用户代理信息
Accept指定客户端能够接受的响应内容类型
Authorization包含用于进行身份验证的凭证信息,比如Bearer令牌、基本认证凭据等。
Cookie包含来自服务器的应答Cookie值,客户端将这些值存储并在每次请求中发送回服务器
Referer表示当前请求是从哪个URL页面跳转过来的,用于记录请求的来源
If-Modified-Since用于条件性GET请求,指定自某个日期/时间以来是否有更新的资源可用。
Cache-Control控制缓存行为的指令,如max-age、no-cache、private等。
X-Requested-With标识该请求是由Ajax发起的,常用于区分普通请求和异步请求。
TODO 待补充
1.2.2 头部字段 Content-Type 常见媒体类型扩展
媒体类型类型描述
application/jsonJSON 格式的数据
application/xmlXML 格式的数据
application/octet-stream二进制流数据,通常用于文件上传或下载
text/plain纯文本数据,不包含任何格式或特殊字符
text/htmlHTML 格式的数据,通常用于网页内容
multipart/form-data用于表单提交,可以包含多种不同类型的数据,比如文件、文本等。
application/x-www-form-urlencoded经过 URL 编码的表单数据
application/pdfPDF 格式的文档
image/jpeg 或 image/pngJPEG 或 PNG 格式的图片
audio/mpeg 或 audio/oggMPEG 或 OGG 音频文件
Access-Control-Expose-Headers 该字段值为一个以逗号分隔的名称列表,用于明确告知客户端可以访问的响应头字段名称。例如:Access-Control-Expose-Headers: Content-Type, X-Custom-Header

关于 Access-Control-Expose-Headers: 默认情况下,浏览器可以访问以下响应头字段:

  • 当客户端向服务器发送HTTP请求时,以下是一些常见的可以被访问到的HTTP请求头字段:

    Accept:指定客户端能够处理的媒体类型(MIME类型)。
    Accept-Encoding:指定客户端能够处理的内容编码方式,如gzip、deflate等。
    Accept-Language:指定客户端首选的自然语言,用于响应内容的国际化。
    User-Agent:包含了发起请求的用户代理信息,通常标识了浏览器或其他客户端应用程序。
    Host:指定目标服务器的主机名和端口号。
    Cookie:指定之前由服务器设置的Cookie值,用于跟踪会话状态。
    Authorization:用于进行身份验证的凭证信息,如基本认证、Bearer令牌等。

  • 在服务器响应中,以下是一些常见的可以被访问到的HTTP响应头字段:

    Content-Type:指定响应正文的媒体类型。
    Content-Length:指定响应正文的字节长度。
    Cache-Control:控制缓存行为,如max-age、no-cache等指令。
    Expires:指定响应的过期时间。
    Last-Modified:指示资源的最后修改时间。
    Set-Cookie:设置Cookie值,用于跟踪会话状态。
    Access-Control-Allow-Origin:指示允许访问资源的来源,用于CORS跨域请求。
    Location:指定重定向的URL地址。

1.3 请求体(Request Body)某些请求方法,如 POST 或 PUT,可以在请求体中携带数据。请求体一般用于向服务器提交表单数据、上传文件等。
1.3.1 常见的请求体格式
请求格式格式描述
Content-Type:application/x-www-form-urlencoded)使用HTTP POST方法时,可以将表单数据包含在请求体中。请求体的格式类似于"key1=value1&key2=value2"的键值对形式,多个键值对之间使用"&"符号连接。
Content-Type:application/json使用HTTP POST或PUT方法时,可以将JSON格式的数据包含在请求体中。请求体的内容为JSON字符串,需要设置请求头的Content-Type为"application/json"
Content-Type:multipart/form-data使用HTTP POST方法进行文件上传时,可以将文件及相关信息打包放入请求体中。这种格式一般用于上传文件,请求体以多部分(multipart)的形式组织,并使用boundary分隔每个部分
原始数据(Raw Data)也可以直接将原始数据以字符串的形式放入请求体中,无论是纯文本还是其他格式的数据。需要根据实际情况设置请求头的Content-Type。
1.3.2 POST 扩展 前后端常见问题
1. 传文件加其他参数
  • Content-Type 使用 multipart/form-data
    • 将表单数据按照多部分的格式进行编码。每个字段都会被封装成一个单独的部分,可以包含普通文本字段和文件上传字段。这种编码方式适用于需要上传文件的场景。
2. 只传参数
  • Content-Type 使用 application/x-www-form-urlencoded
    • 将表单数据按照URL参数的方式进行编码。所有字段名和字段值都会被URL编码,并使用&符号连接。这种编码方式适用于只传输普通文本字段的场景。

三级目录

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

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

相关文章

Ubuntu中还换源 sudo apt-get update更新失败

sudo apt-get update更新失败 1 前提2 编辑3 换源 1 前提 浏览器可以访问百度 如下文章: VMware 中虚拟机没网 2 编辑 输入如下命令,进入换源文件: sudo gedit /etc/apt/sources.list 3 换源 中科大 deb http://mirrors.ustc.edu.cn/ub…

JAVA 异常分类及处理

1 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用 这个方法的其他代码也无法继续执行,异常处理…

OCI 发布了容器运行时和镜像规范!

7 月 19 日是开放容器计划Open Container Initiative(OCI)的一个重要里程碑,OCI 发布了容器运行时和镜像规范的 1.0 版本,而 Docker 在这过去两年中一直充当着推动和引领的核心角色。 我们的目标是为社区、客户以及更广泛的容器行…

【华为OD机试】最长广播效应【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! ■ 题目描述 某通信网络中有N个网络结点,用1到N进行标识。 网络中的结点互联互通,且结点之间的消息传递有时延,相连结点的时延均为一个时间单位。 现给定网络结点的连接关系link[i]={u,v},其中…

微信不开,WORD一保存就死机

重启后,微信不开,WORD一保存就死机。开微信,WORD就OK了,一切正常了。 其实微信、钉钉这些都是最大的公家木马。

重试机制-spring-retry、guava-retry

重试机制是什么? 网络重试机制是用于在网络通信中处理失败的请求。接口重试可以在一定的时间间隔内多次尝试发送相同的请求,直到请求成功或达到最大重试次数为止。 为什么要重试? 1. 提高请求的成功率:网络通信中可能会出现各种…

通过 Azure 日志分析加强云安全

Microsoft Azure 云服务在安全日志存储、访问、可伸缩性、降低成本和易于部署方面提供了巨大的优势,因此在企业中很受欢迎。 Microsoft Azure 日志记录工具(如 Log360)可帮助管理 Azure 云基础结构中所有设备和应用程序(如虚拟机…

一点C知识:数据类型和内存地址。

当你需要存储一份数据到内存里的时候,你需要通过需要存储的方式和精度,向操作系统申请一份内存地址,形容怎么样申请地址的关键字就是数据类型。 例如,32位的处理器就有着32位的地址位宽,定义了一个char类型的数据&…

Flutter笔记:AnimationMean、AnimationMax 和 AnimationMin 三个类的用法

Flutter笔记 AnimationMean、AnimationMax 和 AnimationMin三个类的用法 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/…

Python绘图系统24:添加辅助坐标轴

文章目录 辅助坐标增减坐标轴时间轴**代码优化源代码 Python绘图系统: 前置源码: Python打造动态绘图系统📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制📈四 定制绘图风格 📈五 数据…

MySQL单表查询与多表查询

目录 一、单表查询 ​编辑 1、显示所有职工的基本信息。 ​编辑2、查询所有职工所属部门的部门号,不显示重复的部门号。 ​编辑3、求出所有职工的人数。 4、列出最高工和最低工资。 ​编辑5、列出职工的平均工资和总工资。 ​编辑6、创建一个只有职…

opencv实现目标跟踪及视频转存

创建跟踪器 def createTypeTracker(trackerType): 读取视频第一帧,选择跟踪的目标 读第一帧。 ok, frame video.read() 选择边界框 bbox cv2.selectROI(frame, False) 初始化跟踪器 tracker_type ‘MIL’ tracker createTypeTracker(tracker_type) 用第一…

上古神器:十六位应用程序 Debug 的基本使用

文章目录 参考环境上古神器 DebugBug 与 DebuggingDebugDebug 应用程序淘汰原因使用限制 DOSBox学习 Debug 的必要性DOSBox-X Debug 的基本使用命令 R查看寄存器的状态修改寄存器的内容 命令 D显示内存中的数据指定起始内存空间地址指定内存空间的范围 命令 A使用命令语法错误查…

ElementPlus· tab切换/标签切换 + 分页

tab切换 ---> <el-tabs><el-tab-pane>... 分页 --------> <el-pagination> tab切换 // tab标签切换 // v-model双向绑定选项中的name&#xff0c;tab-change事件在 activeName改变时触发 <script setup> const tabChange (tab, event)>{…

服务器应用程序不可用的原因是什么引起的

服务器应用程序不可用的原因是什么引起的 服务器应用程序不可用的原因是什么引起的?其实服务器应用程序不可用可能是由多种原因引起的。主要包括软件故障、网络问题、硬件故障、安全问题、配置错误、容量不足、数据库问题等&#xff0c;具体详细服务器应用程序不可用的原因如下…

28391-2012 建筑施工机械与设备 人力移动式液压动力站

声明 本文是学习GB-T 28391-2012 建筑施工机械与设备 人力移动式液压动力站. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了人力移动式液压动力站(以下简称动力站)的范围、分类、要求、试验方法和检验规则。 本标准适用于以中小…

2023年9月文章一览

2023年9月编程人总共更新了4篇文章&#xff1a; 1.2023年8月文章一览 2.Programming abstractions in C阅读笔记&#xff1a;p144-p160 3.Programming abstractions in C阅读笔记&#xff1a;p161-p165 4.我为什么选择这样一份经常出差的工作 9月份大部分时间在出差&#…

Anderson-Darling正态性检验【重要统计工具】

Anderson-Darling正态性检验是一种用于确定数据集是否服从正态分布&#xff08;也称为高斯分布或钟形曲线分布&#xff09;的统计方法。它基于Anderson和Darling于1954年提出的检验统计量。该检验的基本原理和用途如下&#xff1a; 基本原理&#xff1a; 零假设&#xff08;Nu…

信息安全:网络安全漏洞防护技术原理与应用.

信息安全&#xff1a;网络安全漏洞防护技术原理与应用. 网络安全漏洞又称为脆弱性&#xff0c;简称漏洞。漏洞一般是致使网络信息系统安全策略相冲突的缺陷&#xff0c;这种缺陷通常称为安全隐患。 安全漏洞的影响主要有机密性受损、完整性破坏、可用性降低、抗抵赖性缺失、可…

yolov8 opencv模型部署(C++版)

yolov8 opencv模型部署&#xff08;C 版&#xff09; 使用opencv推理yolov8模型&#xff0c;仅依赖opencv&#xff0c;无需其他库&#xff0c;以yolov8s为例子&#xff0c;注意&#xff1a; 使用opencv4.8.0 &#xff01;使用opencv4.8.0 &#xff01;使用opencv4.8.0 &#…