当前位置: 首页 > news >正文

前后端通信 —— 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/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 状态码(常用) …...

人工智能 (AI) 应用:一个高精度ASD 诊断和照护支持系统

自闭症谱系障碍(ASD)是一种多方面的神经发育状况,影响全球大约1/100的儿童,而在中国,这一比例高达1.8%(引用自《中国0~6岁儿童孤独症谱系障碍筛查患病现状》),男童为2.6%…...

C# 1.方法

方法组成: 1.修饰符:public一般定义共有的 2.方法返回值:void 无返回值; 非void,可以写成其他类型例如int,float,string,string[]等 3.方法名:Add 大驼峰命名法,每一个首字符大写。…...

【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块

二叉搜索树:【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言&#xff1a…...

px,em,rem之间的关系换算

px,em,rem之间的换算 px&#xff1a;普通大小 em&#xff1a;相对单位&#xff0c;相对于父元素的字体大小 rem&#xff1a;相对单位&#xff0c;相对于根元素&#xff08;html&#xff09;的字体大小 <!DOCTYPE html> <html lang"en"> <head>…...

HTTP——POST请求详情

POST请求 【传输实体文本】向指定资源提交数据进行处理请求&#xff08;例如提交表单或者上传文件&#xff09;。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。 场景&#xff1a; 1. 提交用户注册信息。 2. 提交修改的用户信息。 常见的…...

外包干了1个月,技术明显退步。。。

有一种打工人的羡慕&#xff0c;叫做“大厂”。 真是年少不知大厂香&#xff0c;错把青春插稻秧。 但是&#xff0c;在深圳有一群比大厂员工更庞大的群体&#xff0c;他们顶着大厂的“名”&#xff0c;做着大厂的工作&#xff0c;还可以享受大厂的伙食&#xff0c;却没有大厂…...

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)

题目描述 一.原本暴力算法 最初的想法是&#xff1a;先比较gas数组和cost数组的大小&#xff0c;找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点&#xff0c;就不能作为起始点)。当找到过后&#xff0c;再去依次顺序跑一圈&#xff0c;如果剩余的油为负数…...

5.1 软件工程基础知识-软件工程概述

软件工程诞生原因 软件工程基本原理&#xff08;容易被考到&#xff09; 软件生存周期 能力成熟度模型 - CMM 能力成熟度模型 - CMMI 真题...

HttpUtil工具

http工具 用到的依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency><dependency><groupId>org.apache.httpcomponent…...

并发编程-锁的分类

锁的分类 可重入锁&不可重入锁 可重入&#xff1a;当一个线程获取某个锁后&#xff0c;再次获取这个锁的时候是可以直接拿到的。不可重入&#xff1a;当一个线程获取某个锁之后&#xff0c;再次获取这个锁的时候拿不到&#xff0c;必须等自己先释放锁再获取。synchronized…...

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用

一、Kubernetes 的基本概念和术语 一、资源对象 ​ Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的&#xff0c;而资源对象在总体上可分为以下两类: 1、某种资源的对象 ​ 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume&#xff09;。 2、…...

在VSCode上创建Vue项目详细教程

1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境&#xff0c;就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1&#xff09;具体安装步骤操作即可&#xff1a; npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…...

Go语言入门之流程控制简述

Go语言入门之流程控制简述 1.if语句 if语句和其他语言一样&#xff0c;只不过go语言的if不需要用括号包裹 if 语句的分支代码块的左大括号与 if 关键字在同一行上&#xff0c;这是 go 代码风格的统一要求 简单实例&#xff1a; func main() {// 猜数字a : 2if a > 0 {if a…...

接口测试框架基于模板自动生成测试用例!

引言 在接口自动化测试中&#xff0c;生成高质量、易维护的测试用例是一个重要挑战。基于模板自动生成测试用例&#xff0c;可以有效减少手工编写测试用例的工作量&#xff0c;提高测试的效率和准确性。 自动生成测试用例的原理 为了实现测试用例数据和测试用例代码的解耦&a…...

C++ STL stable_sort用法

一&#xff1a;功能 对区间内元素进行排序&#xff0c;保证相等元素的顺序&#xff08;稳定排序&#xff09; 二&#xff1a;用法 #include <iostream>struct Record {std::string label;int rank; };int main() {std::vector<Record> data {{"q", 1},…...

YOLO v8进行目标检测的遇到的bug小结

OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 我的python环境是放在C盘的&#xff1a; 在“我的电脑”点击鼠标右键&#xff0c;打开“属性”点击高级系统设置点击“设置”找到“高级”点击“更改”分配“虚拟内存”&#xff08;这里需要重启电脑才能生…...

FastAPI -- 第二弹(响应模型、状态码、路由APIRouter、后台任务BackgroundTasks)

响应模型 添加响应模型 from typing import Anyfrom fastapi import FastAPI from pydantic import BaseModel, EmailStrapp FastAPI()class UserIn(BaseModel):username: strpassword: stremail: EmailStrfull_name: str | None Noneclass UserOut(BaseModel):username: s…...

案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造

近日&#xff0c;人大金仓支撑山西涉企政策服务平台、政务服务热线联动平台、政务网、办件中心等近30个政务核心系统完成全栈国产化升级改造&#xff0c;推进全省通办、跨省通办、综合业务受理、智能审批、一件事一次办等业务的数字化办结进程&#xff0c;为我国数字政务服务提…...

如何用python写接口

如何用python写接口&#xff1f;具体步骤如下&#xff1a;  1、实例化server 2、装饰器下面的函数变为一个接口 3、启动服务 开发工具和流程&#xff1a; python库&#xff1a;flask 》实例化server&#xff1a;server flask.Flask(__name__) 》server.route(/index,met…...

轻量级可扩展易航网址引导系统源码V2.45

由于现在网站行业的不稳定&#xff0c;导致很地址频繁更换&#xff0c;不仅是网站&#xff0c;联系QQ&#xff0c;加群链接等需要更换时&#xff0c;好不容易发展的客户会因为找不到您新的网站地址而流失&#xff0c;有了引导页以后就可以安心地宣传无需担心客户丢失的问题。 …...

解决ESLint和Prettier冲突的问题

在配置了ESLint的项目中使用Prettier进行格式化可能会出现冲突&#xff0c;不如Prettier配置了使用双引号&#xff0c;ESLint配置了单引号&#xff0c;当然可以一个一个改成一样的配置&#xff0c;但是比较麻烦。我发现可以直接使用ESLint的规则进行格式化。在VSCode配置过程如…...

C判断一个点在三角形上

背景 鼠标操作时&#xff0c;经常要判断是否命中显示控件&#xff0c;特开发此算法快速判断。 原理 三角形三等分点定理是指在任意三角形ABC中&#xff0c;可以找到三个点D、E和F&#xff0c;使得线段AD、BE和CF均等分三角形ABC。 这意味着三个等分点分别位于三个边界上&…...

物业系统自主研发接口测试框架

1、自主研发框架整体设计 1.1、什么是测试框架? 在了解什么是自动化测试框架之前&#xff0c;先了解一下什么叫框架?框架是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法;另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架…...

手机和电脑通过TCP传输

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…...

Git 在commit后,撤销commit

1. 撤销已经add&#xff0c;但是没有commit的问题 git reset HEAD 2. 撤销已经commit&#xff0c;但是没有push到远端的文件&#xff08;仅撤销commit 保留add操作&#xff09; 撤销上一次的提交 git reset --soft HEAD^windows 系统使用提示 more&#xff0c;需要多加一个…...

多模态大模型 - MM1

1. 摘要 本文主要通过分析模型结构和数据选择讨论如何构建一个好的多模态大模型&#xff08;MLLM&#xff09;&#xff0c;并同时提出了MM1模型&#xff0c;包括30B dense版本和64B的MoE版本。 具体贡献&#xff1a; 模型层面&#xff1a;影响效果的重要性排序为&#xff1a;…...

FPGA设计之跨时钟域(CDC)设计篇(2)----如何科学地设计复位信号?

1、复位是干嘛的? 时钟信号和复位信号应该是一个数字系统最重要和最常用的两个信号了。时钟的重要性大家都懂,没有时钟整个系统就无法同步,自然也就谈不上运行了。那么复位(reset)到底是干嘛的? 所有的数字系统在上电的时候都会进行复位,这样才能确保该系统的初始运行状…...

GPS北斗标准时钟同步服务器结构是什么?安徽京准

GPS北斗标准时钟同步服务器结构是什么&#xff1f;安徽京准 GPS北斗标准时钟同步服务器结构是什么&#xff1f;安徽京准 电厂时钟同步系统组成及配置 随着计算机和网络通信技术的飞速发展&#xff0c;火电厂热工自动化系统数字化、网络化的时代已经到来。一方面它为控制和信息系…...

9.5 栅格图层符号化多波段彩色渲染

文章目录 前言多波段彩色渲染QGis设置为多波段彩色二次开发代码实现多波段彩色 总结 前言 介绍栅格图层数据渲染之多波段彩色渲染说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 多波段彩色渲染 以“3420C_2010_327_RGB_LATLNG.tif”数据为例&#xff0c…...