前后端通信 —— HTTP/HTTPS

news2024/9/28 1:20:26

目录

一、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.coloradmin.cn/o/1919897.html

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

相关文章

【Hive SQL 每日一题】在线峰值人数计算

文章目录 测试数据需求说明需求实现 测试数据 -- 创建 user_activity 表 DROP TABLE IF EXISTS user_activity ; CREATE TABLE user_activity (user_id STRING,activity_start TIMESTAMP,activity_end TIMESTAMP );-- 插入数据 INSERT INTO user_activity VALUES (user1, 2024…

GAN生成对抗网络

GAN生成对抗网络 GANStable Diffusion GAN生成对抗网络子啊2015年横空出世,在当时掀起了巨大轰动,很多人预研它将开创一个全新的学习范式,当时有一个很流行的说法:样本不够,GAN来凑。现如今,大模型当道&…

vue+lodop实现web端打印功能

lodop官网下载地址:http://www.c-lodop.com/download.html 1、下载插件(如果只是想实现打印功能,下载红框里的即可) 2、解压缩,然后根据自己的操作系统安装控件 32位系统安装:install_lodop32.exe&#x…

通俗易懂,幽默诙谐,《IP 核芯志》让逻辑设计思想摆脱枯燥的标签(可下载)

在科技的广袤星空中,数字逻辑设计宛如一颗璀璨的明星,闪耀着智慧与创造的光芒。而在这光芒的深处,IP 核芯则是那关键的能量源泉,驱动着无数创新的浪潮。 《IP 核芯志——数字逻辑设计思想》犹如一座灯塔,照亮了我们在…

Docker Push Docker Hub

首先可以参考 Docker | 将自己的docker镜像推送到docker hub[图文详情]_如何将自己的docker镜像上传到dockerhub上-CSDN博客 将自己的镜像打标签 和 镜像推送到 docker hub上的图文注意一下 1.打标签之前 docker tag paddleocr_fast_api:1.0 hmgx/wlx:3.0 2.打标签之后 3.开…

数据结构 —— FloydWarshall算法

数据结构 —— FloydWarshall算法 FloydWarshall算法三种最短路径算法比较1. Dijkstra算法2. Bellman-Ford算法3. Floyd-Warshall算法总结 我们之前介绍的两种最短路径算法都是单源最短路径,就是我们要指定一个起点来寻找最短路径,而我们今天介绍的Floyd…

STM32第十八课:SPIFlash

目录 需求一、SPI概要二、SPI配置1.开时钟2.配置IO3.配置&使能SPI 三、FLash操作函数1.SPI发送数据2.FLASH写使能3.FLASH等待操作完成4.FLASH页写操作5.FLASH读操作6.FLASH扇区擦除 四、需求实现 需求 通过SPI控制FLash进行数据的保存和删除。 一、SPI概要 在我们使用UA…

egg.js使用消息队列rabbitMQ

1. egg-amqplib: 基于 rabbitmq 消息队列封装的库 安装: npm i egg-amqplib --save 引入 // {app_root}/config/plugin.js exports.amqplib {enable: true,package: egg-amqplib, }; 设置 // {app_root}/config/config.default.js exports.amqplib {client:…

Zero-shot learning for requirements classification: An exploratory study

Zero-shot learning for requirements classification: An exploratory study A B S T R A C T 背景:需求工程(RE)研究人员一直在试验机器学习(ML)和深度学习(DL)方法来完成一系列的需求工程任务,比如需求分类、需求跟踪、歧义检测和建模。然而,今天的…

VSCode上通过C++实现单例模式

单例模式实际上就是为了确保一个类最多只有一个实例,并且在程序的任何地方都可以访问这个实例,也就是提供一个全局访问点,单例对象不需要手动释放,交给系统来释放就可以了,单例模式的设计初衷就是为了在整个应用程序的…

Web3 ETF 软件系统的开发框架

Web3 ETF 软件系统的开发框架主要包括智能合约层、前端层、后端层和基础设施层,下面进行详细的介绍。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 智能合约层 智能合约是运行在区块链上的程序,用于定义和执…

基于ssm的图书管理系统的设计与实现

摘 要 在当今信息技术日新月异的时代背景下,图书管理领域正经历着深刻的变革,传统的管理模式已难以适应现代社会的快节奏和高要求,逐渐向数字化、智能化的方向演进。本论文聚焦于这一转变趋势,致力于设计并成功实现一个基于 SSM&…

[计算机网络] VPN技术

VPN技术 1. 概述 虚拟专用网络(VPN)技术利用互联网服务提供商(ISP)和网络服务提供商(NSP)的网络基础设备,在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。 优…

博物馆地图导航系统:高精度地图引擎与AR/VR融合,实现博物馆数字化转型

在人民日益追求精神文化的时代下,博物馆作为传承与展示人类文明的璀璨殿堂,其重要性不言而喻。然而,随着博物馆规模的不断扩大和藏品种类的日益丰富,游客在享受知识盛宴的同时,也面临着“迷路”与“错过”的困扰。博物…

综合实验作业

node01:192.168.175.146 node02:192.168.175.147 【node01】 node01 与 node02 防火墙在本实验中都需要放行的服务; [rootlocalhost ~]# firewall-cmd --permanent --add-servicedns success [rootlocalhost ~]# firewall-cmd --permanent -…

【C语言】 —— 预处理详解(下)

【C语言】 —— 预处理详解(下) 前言七、# 和 \##7.1 # 运算符7.2 ## 运算符 八、命名约定九、# u n d e f undef undef十、命令行定义十一、条件编译11.1、单分支的条件编译11.2、多分支的条件编译11.3、判断是否被定义11.4、嵌套指令 十二、头文件的包…

以太网中的各种帧结构

帧结构(Ethernet Frame Structure)介绍 以太网信号帧结构(Ethernet Signal Frame Structure),有被称为以太网帧结构,一般可以分为两类 —— 数据帧和管理帧。 按照 IEEE 802.3,ISO/IEC8803-3 …

Django 框架下的media和static静态文件

Django有两种静态文件 static: 静态文件夹,存放CSS,JS,网站的一些图片等静态资源,为Templates下的html页面提供的。static是不会变化的 media:媒体文件夹,存放网站中用户所相关的一些文件,比如说用户的图片…

深度解析蚂蚁 SEO 蜘蛛池:提升网站流量的有效利器

在当今数字化时代,网站流量对于企业和个人的在线业务成功至关重要。为了在竞争激烈的网络环境中脱颖而出,众多站长和 SEO 从业者不断探索各种优化策略,其中蚂蚁 SEO 的蜘蛛池成为备受关注的工具之一。 蚂蚁 SEO 蜘蛛池是一种创新的技术手段&a…

24/7/12总结

axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 get请求: <script>function…