Web基础之什么是HTTP协议

news2025/1/13 1:28:50

 Q:什么是HTTP协议?

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

特点:
1.基于TCP协议:面向连接,安全
2.基于请求-响应模型的:一次请求对应一次响应
3。HTTP协议是无状态(无状态的是:每一次请求都是独立的,后一次请求不会记录前一次的数据)的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
        缺点:多次请求间不能共享数据。(解决方案:会话技术)
        优点:速度快(不能共享数据所以传输速度快)

 HTTP协议-请求数据格式

如何查看数据格式?在chrome浏览器中按下F12,选择网络-全部,刷新一下之后就可以在名称栏下找到想找到的http请求。点击标头,然后点击原始数据,就可以出现下图所示结果。

请求行:请求数据第一行(请求方式、资源路径、协议)

 请求头:第二行开始,格式key:value

常见的请求头:

请求体:POST请求,存放请求参数 

1.请求体在请求头一个空行之后  ( 补充:GET方式的请求是没有请求体的。)

2.请求体一般是json格式的数据,由此我们也可以很明显的看出请求体可以传输更多的数据

为什么请求体/POST请求可以传输更多的数据?

tip:GET方式的请求:设置的参数都是在请求行的 “ ?”后面进行提供,GET请求大小在浏览器中是有限制的。(如:/brand/findAll?name=海绵宝宝&status=1)

        POST方式的请求:设置的参数则往往是在请求体一个完整的json格式的数据,POST请求大小是没有限制的。

小结:

1.Http协议中请求数据分为哪几个部分?
请求行(请求数据的第一行)
请求头(key:value)
请求体(与请求头之间隔了一个空行)

Q:在服务器端我们该如何获取传递过来的请求数据?

具体操作代码: 

@RestController
public class RequestController {

    @RequestMapping("/request")
   public String request(HttpServletRequest request){
        // 获取请求方式
        String method = request.getMethod();
        System.out.println("method:"+method);
        //获取请求路径
        String requestURI = request.getRequestURI();
        System.out.println("requestURI:"+requestURI);
        //获取请求参数
        String queryString = request.getQueryString();
        System.out.println("queryString:"+queryString);
        // 获取请求协议
        String protocol = request.getProtocol();
        System.out.println("protocol:"+protocol);
        // 获取请求头
        String header = request.getHeader("User-Agent");
        System.out.println("header:"+header);
        return "success";
   }
}

 结果:

 重点tip:

实战补充:1.alt+P AI自动生成提示代码 

                 2.// 获取请求头                                      这里想获取什么请求头,参数里就填什么

                       String header = request.getHeader("User-Agent");

                 3.StringBuffer类型的数据java不能直接输出,要再调用toString()方法。

                

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

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

相关文章

#渗透测试#谷歌扩展学习#编写一个属于自己的谷歌扩展

目录 一、Chrome扩展程序是什么 二、如何自己编写一个简单谷歌扩展 1. 创建项目文件夹 2. 创建 manifest.json 文件 3. 创建 popup.html 文件 4. 创建 popup.js 文件 5. 加载扩展程序到Chrome浏览器 6. 测试扩展程序 三、Chrome插件图标设计技巧 1. 简洁明了 2. 独特…

LayerNorm的思考

文章目录 1. LayerNorm2. 图解3. softmax4. python 代码 1. LayerNorm y x − E [ x ] v a r ( x ) ϵ ∗ γ β \begin{equation} y\frac{x-\mathrm{E}[x]}{\sqrt{\mathrm{var}(x)\epsilon}}*\gamma\beta \end{equation} yvar(x)ϵ ​x−E[x]​∗γβ​​ 2. 图解 矩阵A …

ExplaineR:集成K-means聚类算法的SHAP可解释性分析 | 可视化混淆矩阵、决策曲线、模型评估与各类SHAP图

集成K-means聚类算法的SHAP可解释性分析 加载数据集并训练机器学习模型 SHAP 分析以提取特征对预测的影响 通过混淆矩阵可视化模型性能 决策曲线分析 模型评估(多指标和ROC曲线的目视检查) 带注释阈值的 ROC 曲线 加载 SHAP 结果以进行下游分析 与…

Kafka 会丢消息吗?

目录 01 生产者(Producer) 02 消息代理(Broker) 03 消费者(Consumer) 来源:Kafka 会丢消息吗? Kafka 会丢失信息吗? 许多开发人员普遍认为,Kafka 的设计本身就能保证不会丢失消息。然而,Kafka 架构和配置的细微差别会导致消息的丢失。我们需要了解它如何以及何时…

Open FPV VTX开源之第一次出图

Open FPV VTX开源之第一次出图 1. 源由2. 连线2.1 飞控2.2 调试 3. serial3.1 启动log - uboot3.2 登录版本 - linux3.3 获取有线IP 4. ssh - linux5. PixelPilot出图6. 总结7. 参考资料8. 补充 - 8812AU网卡 1. 源由 在《Open FPV VTX开源之硬件规格及组成》章节中&#xff0…

仓颉笔记——写一个简易的web服务并用浏览器打开

创建一个web服务端,同时创建一个客户端去读取这个服务端。 也满足浏览器打开web的需求。 直接上代码。 import net.http.* import std.time.* import std.sync.* import std.log.LogLevel// 1. 构建 Server 实例 let server ServerBuilder().addr("127.0.0.1&…

Trie树算法

Trie树,也称为前缀树或字典树,是一种特殊的树型数据结构。它用于存储一组字符串,使得查找、插入和删除字符串的操作非常高效。类似这种, 模板: 这是用数组来模拟上图中的树的结构,逻辑上和上图结构一致。 …

03-51单片机定时器和串口通信

一、51单片机定时器 1.定时器介绍 1.1为什么要使用定时器 在前面的学习中,用到了 Delay 函数延时,这里学习定时器以后,就可以通过定时器来完成,当然定时器的功能远不止这些: 51 单片机的定时器既可以定时&#xff…

搭建docker私有化仓库Harbor

Docker私有仓库概述 Docker私有仓库介绍 Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部…

【深度学习】核心概念-人工神经网络(Artificial Neural Network, ANN)

人工神经网络是一种受生物神经系统启发的机器学习模型,旨在通过连接大量的节点(称为神经元或节点)来模拟人脑的学习方式。它是一种在监督学习和非监督学习中广泛应用的深度学习模型。 人工神经网络的基本结构 一个人工神经网络通常由以下三个…

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。 1. 切比雪夫节点 切比雪夫插值的核心是使用切比雪夫节点作为插值点。切比雪夫节点是切…

ELK的搭建

ELK elk:elasticsearch logstatsh kibana统一日志收集系统 elasticsearch:分布式的全文索引引擎点非关系型数据库,存储所有的日志信息,主和从,最少需要2台 logstatsh:动态的从各种指定的数据源,获取数据…

【物联网原理与运用】知识点总结(上)

目录 名词解释汇总 第一章 物联网概述 1.1物联网的基本概念及演进 1.2 物联网的内涵 1.3 物联网的特性——泛在性 1.4 物联网的基本特征与属性(五大功能域) 1.5 物联网的体系结构 1.6 物联网的关键技术 1.7 物联网的应用领域 第二章 感知与识别技术 2.1 …

英文字体:复古八十年代优雅品牌邀请函电影标题设计衬线字体 Eighties Nostalgia Font

嘿,大家好,我希望你们一切顺利,考虑到现在世界上发生的一切,你们在生活的各个方面都取得了进步。过去 3 年对我们所有人来说都是过山车,我一直非常怀念美好的时光。怀旧之情将我带到了 Pinterest,自然而然地…

GPT大模型下,如何实现网络自主防御

近年来,随着GPT大模型的出现,安全领域的攻防对抗变得更加激烈。RSAC2023人工智能安全议题重点探讨了人工智能安全的最新发展,包括人工智能合成器安全、安全机器学习以及如何利用渗透测试和强化学习技术来确保人工智能模型的安全性和可靠性。 …

Spring Framework 5.3.x源码构建 (jdk-1.8, gradle 7.5.1, idea2024.3)

1、下载jdk安装并配置环境变量(自行百度) https://www.oracle.com/java/technologies/downloads/#java8 2、下载spring-framework源码,切换分支到5.3.x https://github.com/spring-projects/spring-framework.git 备用地址 https://gitco…

韩顺平老师Linux学习笔记【持续更新...】

1、课程内容 1.1、课程大纲 1.2、Linux使用在哪些地方 Linux运维工程师Linux嵌入式工程师Linux下开发项目:JavaEE、大数据、Python、PHP、C/C、Go 1.3、Linux的应用领域 个人桌面领域服务器领域(最强领域)嵌入式领域 2、Linux入门 2.1、…

代码随想录算法训练营day27

代码随想录算法训练营 —day27 文章目录 代码随想录算法训练营前言一、贪心算法理论基础二、455.分发饼干三、376. 摆动序列53. 最大子数组和总结 前言 今天是算法营的第27天,希望自己能够坚持下来! 今日任务: ● 贪心算法理论基础 ● 455.…

浅谈容灾技术方案详解

一、什么是容灾? 容灾指的是,在异地搭建一套或多套和主生产系统一样的IT系统,用于应对在系统因发生意外(自然灾害、人为灾害、设备系统故障等)造成业务影响的情况,达到尽量让生产业务损失最小的目的。 二…

《框架程序设计》期末复习

目录 Maven 简介 工作机制(★) 依赖配置(★) Maven命令 MyBatis 入门 单参数查询(★) 多参数查询(★★★) 自定义映射关系(★★★) 基本增删改查操…