前后端通信 —— HTTP/HTTPS

目录

一、HTTP/HTTPS 简介

1、HTTP

2、HTTPS

二、HTTP 工作过程

三、HTTP 消息

1、HTTP消息结构

2、HTTP消息示例

四、HTTP 方法(常用)

1、GET

2、POST

3、PUT

4、DELETE

5、GET与POST对比

五、HTTP 状态码(常用)

1、HTTP 状态码是什么

2、常见的HTTP状态码


一、HTTP/HTTPS 简介

1、HTTP

HTTP(Hypertext Transfer Protocol),超文本传输协议;

  • 是一种用于在万维网上传输数据的应用层协议
  • 主要用来定义客户端和服务器之间的通信规则,包括请求和响应的格式、方法、状态码等;
  • 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件、图片文件、查询结果等);

2、HTTPS

HTTPS(HyperText Transfer Protocol Secure),超文本传输安全协议;

在 HTTP 上加入 SSL/TLS 协议,为数据传输提供了加密和身份验证,是HTTP的安全版本;

二、HTTP 工作过程

1、客户端发起请求

用户通过客户端(如浏览器)输入 URL,客户端向服务器发起一个 HTTP 请求;

2、服务器处理请求

服务器接收到请求后,根据请求的类型(如GET、POST等)和请求的资源,进行相应的处理;

3、服务器返回响应

服务器将处理结果包装成HTTP响应消息,发送回客户端;

4、客户端渲染页面

客户端接收到响应后,根据响应内容(如HTML、图片等)渲染页面,展示给用户;

三、HTTP 消息

HTTP消息是指,在HTTP协议中,客户端与服务端之间进行数据传输的基本单元;

  • 是前后端通信的基础,由一系列的文本行组成,有着固定的结构和格式;
  • 遵循HTTP协议的规范,确保数据能够在客户端和服务器之间正确、高效地传输;
  • 分为两种类型:请求消息和响应消息;

1、HTTP消息结构

 (1)请求消息

(2)响应消息

组成部分说明

起始行

Start Line

  • 请求消息:起始行包括请求方法、请求URI、HTTP版本;
  • 响应消息:起始行包括HTTP版本、状态码、状态文本信息;

头部字段

Headers

  • 提供了关于消息的元数据,如消息类型、消息大小、消息来源、认证信息等;
  • 头部字段由不区分大小写的【字段名:字段值】;
  • 请求头部字段包括User-Agent(用户代理信息)、Accept(可接受的响应内容类型)、Authorization(认证信息)等;
  • 响应头部字段包括Content-Type(内容类型)、Content-Length(内容长度)、Server(服务器信息)等;

空行

Empty Line

  • 空行是一个单独的换行符,用于分隔头部字段和消息体(消息体可能没有);

消息体

Body

  • 消息体包含了请求或响应的实际数据;
  • 在请求消息中,消息体通常包含要发送给服务器的数据,如表单数据或上传的文件。在响应消息中,消息体通常包含服务器返回的资源内容,如HTML页面、图片、视频等;
  • 不是所有的HTTP消息都包含消息体;例如,GET请求通常不包含消息体;

2、HTTP消息示例

(1)请求消息

(2)响应消息

四、HTTP 方法(常用)

常用的HTTP方法有:GET、POST、PUT、DELETE;

序号方法语义说明
1GET查找从服务器获取资源。
2POST新增向服务器发送数据以创建新资源。
3PUT修改向服务器发送数据以更新现有资源。
4DELETE删除从服务器删除指定的资源。

这些方法虽然有各自的语义,但并不是强制性的;

1、GET

GET方法,用于从服务器获取资源;

用于请求数据而不对数据进行更改;

例如,从服务器获取数据、图片、文件等;

2、POST

POST方法,用于向服务器发送数据以创建新资源;

常用于提交表单数据或上传文件,发送的数据包含在请求体中;

例如,新增用户、添加商品等;

3、PUT

PUT方法,向服务器发送数据以更新现有资源;

如果资源不存在,则创建新的资源;

例如,用户修改密码、更新商品库存等;

4、DELETE

DELETE方法,从服务器删除指定的资源;

请求中包含要删除的资源标识符;

例如:注销个人账户、删除某个商品信息;

5、GET与POST对比

GET 请求POST 请求
用途常用于获取数据,如查询操作;常用于创建数据,如表单提交、文件上传等;
数据传递方式将数据作为URL的一部分进行传递,会显示在地址栏中;将数据放在请求体中进行传递,不会显示在地址栏中;
数据长度限制对数据的长度有限制,跟地址长度有关系,不同的浏览器有所不同,一般最多几k;理论上能携带的数据是无限的,但实际受配置和性能的影响;
缓存可以被缓存;一般不会被缓存;
安全性相对不安全,传递的数据在浏览器地址栏直接可见,不适合传递敏感数据;相对安全,更适合传递敏感信息;
对服务器的影响通常只是用来获取资源,不会对服务器上的资源产生影响;通常是用来创建资源,对服务器上的资源会产生;

五、HTTP 状态码(常用)

1、HTTP 状态码是什么

HTTP状态码是HTTP协议中,用来描述服务器响应客户端请求结果的一种编码方式;

  • 是服务器端返回的,对客户端请求的处理结果;
  • 它由三位数字组成,每个数字表示不同的含义;
  • 定义服务器对请求的处理结果,是服务器返回的;

2、常见的HTTP状态码

熟悉常用的状态码对前后端开发有很大的帮助;

不仅可以快速识别请求是否成功;

也可以得出在请求过程中出现的错误类型,进而相应的相应的处理;

HTTP状态码

英文名称

语义

1xx

信息,服务器收到请求,需要请求者继续执行操作
100Continue继续。客户端应继续其请求;
101Switching Protocols切换协议。服务器根据客户端的请求切换协议;

2xx

成功,操作被成功接收并处理

200

OK请求成功。请求所希望的响应头或数据体将随此响应返回;
201Created已创建。成功请求并创建了新的资源;
202Accepted已接受。已经接受请求,但未处理完成;
204No Content无内容。服务器成功处理,但未返回内容;
206Partial Content部分内容。服务器成功处理了部分GET请求;

3xx

重定向,需要进一步的操作以完成请求

301

Moved Permanently永久移动。请求的资源已被永久移动到新位置;

302

Found临时移动。与301类似,客户端应继续使用原先的URL请求资源;

304

Not Modified  未修改。自上次请求后,请求的资源未被修改过;
305Use Proxy使用代理。所请求的资源必须通过代理访问;
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向;

4xx

客户端错误,请求包含语法错误或无法完成请求

400

Bad Request客户端请求的语法错误,服务器无法理解;
401Unauthorized请求要求用户的身份认证;
403Forbidden服务器理解请求,但拒绝执行它;

404

Not Found

服务器无法找到请求的资源;

405Method Not Allowed请求方法不被允许用于请求的资源;
409Conflict请求与当前资源的状态冲突;
410Gone服务器无法找到请求的资源,且该资源可能不再可用;

5xx

服务器错误,服务器在处理请求的过程中发生了错误

500

Internal Serve Error服务器内部错误,无法完成请求;
501Not Implemented服务器不支持请求请求的功能;
502Bad Gateway服务器作为网关或代理,从上游服务器收到无效响应;
503Service Unavailable服务器当前无法使用(由于超载或停机维护);
504Gateway Timeout服务器作为网关或代理,但没有及时从上游服务器收到请求;

=========================================================================

每天进步一点点~~!

先记录到这里吧~~!

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

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

相关文章

常用的简单的ps快捷键

常用快捷键: V移动工具 M矩形选框工具 W快速选择工具 C裁剪工具 P钢笔工具 T文字工具 U矩形工具 Z放大/缩放 altshiftctrls储存为web格式的快捷键 altVE新建参考线 ctrlj 复制当前图层 d 快速把前景色背景色变为黑白 x 切换前景色和背景色 ctrldelete 填充颜色 ct…

关于windows下编译xLua插件的流程记录

1.工程准备 1.xLua工程:GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. 2.build_xlua_with_libs工程:GitHub - chexiongsheng/build_xlua_with_libs…

Onnx 1-深度学习-Operators

自动化测试-芯片神经网络-模型ONNX-Operators 概念综述一: Operators1> Conv2> MaxPool1. 参数2. shape 计算demo3> roipooling1. Roi-pooling 概念2. ROI pooling步骤3. demo4. R-CNN & Fast R-CNN二:维度变换1> Reshape-改变形状1. 参数2. shape 计算demo3.…

实用调试技巧(Visual Studio)

目录 Debug 和 Release 的区别 F10 --- 逐过程调试 & F11 --- 逐语句调试 F9 --- 新建/切换断点 & F5 --- 开始调试 shift F5 & ctrl F5 Debug 和 Release 的区别 Debug:通常为调试版本,它包含调试信息,并且不作任何优化…

亚信科技基于 Apache SeaTunnel 的二次开发应用实践

亚信科技在Apache SeaTunnel的实践分享 自我介绍 各位同学好,很荣幸通过Apache SeaTunnel社区和大家进行分享交流。我是来自亚信科技的潘志宏,主要负责公司内部数据中台产品的开发。 本次分享的主题是Apache SeaTunnel在亚信科技的集成实践&#xff0c…

商品分类左右联动

1、先看效果 2、以hooks方法处理&#xff0c;方便复制使用&#xff0c;见代码 Good.vue文件 <script setup lang"ts" name"goods">import {onMounted, ref, nextTick} from "vue";import useProductScroll from "/utils/hooks/useP…

el-table 鼠标移入更改悬停背景颜色

鼠标悬停时需要更改当前行背景颜色&#xff0c;一开始写的颜色会改变&#xff0c;但是一闪而过就没了 这是因为移入移出的动画效果导致的 .el-table__body {.el-table__row:hover {background-color: pink !important;}} 更改为后面的代码&#xff0c;就可以了 .el-table__…

Milvus核心设计(2)-----TSO机制详解

目录 背景 动机 Timestamp种类及使用场景 Guarantee timestamp Service timestamp Graceful time Timestamp同步机制 主流程 时间戳同步流程 背景 Milvus 在设计上突出了分布式的设计,虽然Chroma 也支持分布式的store 与 query。但是相对Milvus来说,不算非常突出。…

Windows 32 汇编笔记(一):基础知识

一、80x86 处理器的工作模式 1.1 实模式 实模式概述 实模式&#xff08;Real Mode&#xff09;是80x86处理器最早支持的工作模式&#xff0c;也是最基础的工作模式。实模式主要用于早期的MS-DOS操作系统和其他简单的操作环境。在实模式下&#xff0c;处理器能够直接访问1MB的…

Python 神器:wxauto 库——解锁微信自动化的无限可能

&#x1f4dd;个人主页&#x1f339;&#xff1a;誓则盟约 ⏩收录专栏⏪&#xff1a;机器学习 &#x1f921;往期回顾&#x1f921;&#xff1a;“探索机器学习的多面世界&#xff1a;从理论到应用与未来展望” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f…

mysql高并发设计

mysql高并发设计 一、部署方案 https://blog.csdn.net/weixin_37519752/article/details/138728036 方案1&#xff1a;双主 1、优点 写入扩展性&#xff1a;两个节点都可以处理写入操作&#xff0c;提高了写入操作的扩展性。 高可用性&#xff1a;在任一节点故障时&#xff…

数据结构复习计划之复杂度分析(时间、空间)

第二节&#xff1a;算法 时间复杂度和空间复杂度 算法(Algorithm)&#xff1a;是对特定问题求解方法(步骤)的一种描述&#xff0c;是指令的有限序列&#xff0c;其中每一条指令表示一个或多个操作。 算法可以有三种表示形式&#xff1a; 伪代码 自然语言 流程图 算法的五…

猫不吃东西还呕吐是什么原因?可以预防猫咪呕吐的主食冻干推荐

猫咪突然食欲不振&#xff0c;还出现了呕吐的症状&#xff0c;这究竟是为什么呢&#xff1f;结合我多年养猫的经验&#xff0c;让我们一起分析一下可能的原因。 一、 猫不吃东西还呕吐是什么原因 &#xff08;1&#xff09;首先、排除猫瘟 如果你的猫咪一直家养&#xff0c;…

【Android】基于 LocationManager 原生实现定位打卡

目录 前言一、实现效果二、定位原理三、具体实现1. 获取权限2. 页面绘制3. 获取经纬度4. 方法调用5. 坐标转换6. 距离计算7. 完整代码 前言 最近公司有个新需求&#xff0c;想要用定位进行考勤打卡&#xff0c;在距离打卡地一定范围内才可以进行打卡。本文将借鉴 RxTool 的 Rx…

php快速入门

前言 php是一门脚本语言&#xff0c;可以访问服务器&#xff0c;对数据库增删查改&#xff08;后台/后端语言&#xff09; 后台语言&#xff1a;php&#xff0c;java&#xff0c;c&#xff0c;c&#xff0c;python等等 注意&#xff1a;php是操作服务器&#xff0c;不能直接在…

QUdpSocket 的bind函数详解

QUdpSocket 是 Qt 框架中用于处理 UDP 网络通信的类。bind 函数是此类中的一个重要方法&#xff0c;它用于将 QUdpSocket 对象绑定到一个特定的端口上&#xff0c;以便在该端口上接收 UDP 数据包。 函数原型 在 Qt 中&#xff0c;bind 函数的原型通常如下所示&#xff1a; b…

微软开源项目GraphRAG——基于知识图谱的RAG简介

前言 在大型语言模型&#xff08;LLM&#xff09;的前沿研究中&#xff0c;一个核心挑战与机遇并存的领域是扩展它们的能力&#xff0c;以解决超出其训练数据范畴的问题。这不仅要求模型在面对全新数据时仍能保持卓越表现&#xff0c;还意味着开辟了全新的数据分析可能性&…

JVM 堆内存分配过程

设置堆内存大小和 OOM Java 堆用于存储 Java 对象实例&#xff0c;那么堆的大小在 JVM 启动的时候就确定了&#xff0c;我们可以通过 -Xmx 和 -Xms 来设定 -Xms 用来表示堆的起始内存&#xff0c;等价于 -XX:InitialHeapSize-Xmx 用来表示堆的最大内存&#xff0c;等价于 -XX…

Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测

章节内容 上一节我们完成了&#xff1a; Hive中数据导出&#xff1a;HDFSHQL操作上传内容至Hive、增删改查等操作 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…

简单的基追踪一维信号降噪方法(MATLAB 2018)

基追踪法是基于冗余过完备字典下的一种信号稀疏表示方法。该方法具有可提高信号的稀疏性、实现阈值降噪和提高时频分辨率等优点。基追踪法采用表示系数的范数作为信号来度量稀疏性&#xff0c;通过最小化l型范数将信号稀疏表示问题定义为一类有约束的极值问题&#xff0c;进而转…