【JavaWeb】Day24.Web入门——HTTP协议(一)

news2024/12/23 15:52:13

HTTP协议——概述

1.介绍

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

  • http是互联网上应用最为广泛的一种网络协议
  • http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输

如果想知道http协议的数据传输格式有哪些,可以打开浏览器,点击`F12`打开开发者工具,点击`Network`来查看。

浏览器向服务器进行请求时:  服务器按照固定的格式进行解析

服务器向浏览器进行响应时:浏览器按照固定的格式进行解析

 所以,学习HTTP主要就是学习请求和响应数据的具体格式内容。

2.特点

HTTP协议的特点:

  • 基于TCP协议:       TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全
  • 基于请求-响应模型:         一次请求对应一次响应(先请求后响应),请求和响应是一一对应关系,没有请求,就没有响应

  • HTTP协议是无状态协议:       对于数据没有记忆能力。每次请求-响应都是独立的。无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。缺点:  多次请求间不能共享数据;优点:  速度快

 HTTP-请求协议

浏览器和服务器是按照HTTP协议进行数据通信的。

HTTP协议又分为:请求协议和响应协议

  •   请求协议:浏览器将数据以请求格式发送到服务器

  - 包括:**请求行**、**请求头** 、**请求体**

  • 响应协议:服务器将数据以响应格式返回给浏览器

  - 包括:**响应行** 、**响应头** 、**响应体**

在HTTP1.1版本中,浏览器访问服务器的两种方式:

1.GET方式的请求协议

* 请求行 :HTTP请求中的第一行数据。由:`请求方式`、`资源路径`、`协议/版本`组成(之间使用空格分隔)

    * 请求方式:GET  

    * 资源路径:/brand/findAll?name=OPPO&status=1

          * 请求路径:/brand/findAll

          * 请求参数:name=OPPO&status=1

               * 请求参数是以key=value形式出现

               * 多个请求参数之间使用`&`连接

         * 请求路径和请求参数之间使用`?`连接      

     * 协议/版本:HTTP/1.1  

* 请求头 :第二行开始,上图黄色部分内容就是请求头。格式为key: value形式

常见的HTTP请求头有:

      服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同的业务需求。

比如:

       不同浏览器解析HTML和CSS标签的结果会有不一致,所以就会导致相同的代码在不同的浏览器会出现不同的效果

        服务端根据客户端请求头中的数据获取到客户端的浏览器类型,就可以根据不同的浏览器设置不同的代码来达到一致的效果(这就是我们常说的浏览器兼容问题)

        请求体 :存储请求参数( GET请求的请求参数在请求行中,故不需要设置请求体)

 2.POST方式的请求协议

  • 请求行(以上图中红色部分):包含请求方式、资源路径、协议/版本

           - 请求方式:POST

           - 资源路径:/brand

           - 协议/版本:HTTP/1.1

  • 请求头(以上图中黄色部分)  
  • 请求体(以上图中绿色部分) :存储请求参数
  •   请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束)

1.请求方式GET: 请求参数在请求行中,没有请求,如:/brand/findAllname=OPPO&status=1。GET请求大小是有限制的。

2.请求方式-POST: 请求参数在请求体中,POST请求大小是没有限制的。

3.GET请求:安全性低。原因:请求参数暴露在浏览器地址栏中。

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

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

相关文章

hostapd代码分析

控制操作收包 hostapd_ctrl_iface_init函数中注册eloop回调&#xff1a; if (eloop_register_read_sock(hapd->ctrl_sock,hostapd_ctrl_iface_receive, hapd, NULL) <0) {hostapd_ctrl_iface_deinit(hapd);return -1;} hostapd_ctrl_iface_receive函数是hostapd接收报文…

指纹浏览器是什么?有哪些好用的推荐?

在网络世界中&#xff0c;保护您的在线隐私和安全非常重要。反检测浏览器是专门为此诞生的工具&#xff0c;旨在通过更改浏览器指纹来帮助您做到这一点&#xff0c;它们使网站、广告商和其他人很难跟踪您的在线行为。 一、什么是反检测浏览器&#xff1f; 您是否想过网站如何检…

AI21实验室推出Jamba模型,突破AI算力瓶颈,引领行业创新!

近日&#xff0c;AI领域再次迎来重大突破。知名AI研究实验室AI21在官网正式发布了其最新研究成果——基于SSM-Transformer混合架构的商业大模型Jamba。这款模型不仅继承了Transformer架构的优点&#xff0c;还巧妙地融合了SSM技术的优势&#xff0c;实现了性能和效率的双重飞跃…

Arthas-tarce线上排查问题流程

入门文档&#xff1a;trace | arthas 1、jar下载和启动 连接curl -O https://arthas.aliyun.com/arthas-boot.jar【wget https://arthas.aliyun.com/arthas-boot.jar】 。.../jdk/bin/java -jar arthas-boot.jar 22336【最好在这个目录启动,port可选】 选择进程序号 enter回车…

Linux:详解TCP协议段格式

文章目录 认识TCPTCP协议段格式 本篇主要总结的是TCP协议的一些字段 认识TCP TCP协议全称是传输控制协议&#xff0c;也就是说是要对于数据的传输进行一个控制 以上所示的是对于TCP协议进行数据传输的一个理解过程 全双工 至此就可以对于TCP协议是全双工的来进行理解了&…

WinServer启用Hyper-V新建虚拟机没有网络、无法开启增强模式

没有网络问题如下&#xff1a; 原因&#xff1a;没有在Hyper-V中新增交换机 操作—虚拟交换机管理器—新建虚拟网络交换机-外部-允许管理员操作系统共享此网络适配器 无法开启增强模式&#xff1a;

【分布式】——分布式事务

分布式事务 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/tree-learning-notes ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专…

免费在线制流程图和思维导图ProcessOn高效协同

免费在线制流程图和思维导图ProcessOn高效协同&#xff0c;还有海量的免费模板。在ProcessOn&#xff0c;你可以与全球超过1.1亿的优秀人才一起合作&#xff0c;共同绘制出精美的流程图和思维导图。无论是工作中的项目管理&#xff0c;还是学习中的知识整理&#xff0c;Process…

【计算机图形学】3D Implicit Transporter for Temporally Consistent Keypoint Discovery

对3D Implicit Transporter for Temporally Consistent Keypoint Discovery的简单理解 文章目录 1. 现有方法限制和文章改进2. 方法2.1 寻找时间上一致的3D特征点2.1.1 3D特征Transporter2.1.2 几何隐式解码器2.1.3 损失函数 2.2 使用一致特征点的操纵 1. 现有方法限制和文章改…

【热门话题】Yarn:新一代JavaScript包管理器的安装与使用

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Yarn&#xff1a;新一代JavaScript包管理器的安装与使用引言一、Yarn的安装1. 系…

FPGA结构与片上资源

文章目录 0.总览1.可配置逻辑块CLB1.1 6输入查找表&#xff08;LUT6&#xff09;1.2 选择器&#xff08;MUX&#xff09;1.3 进位链&#xff08;Carry Chain&#xff09;1.4 触发器&#xff08;Flip-Flop&#xff09; 2.可编程I/O单元2.1 I/O物理级2.2 I/O逻辑级 3.布线资源4.其…

网络七层模型之数据链路层:理解网络通信的架构(二)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

IEEE投稿Latex要求整理(以TCYB为例)

本文以IEEE Transactions on Cybernetics(TCYB)期刊为例&#xff0c;简略整理了投稿中latex编写时作者本人认为需要特别注意的事项。 投稿步骤如下&#xff1a; 下载对应期刊的模板&#xff1b;仔细阅读模板中的投稿要求&#xff1b;在官网注册并投稿。 一、下载对应期刊的模…

Rust编程(五)终章:查漏补缺

闭包 & 迭代器 闭包&#xff08;Closure&#xff09;通常是指词法闭包&#xff0c;是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量&#xff0c;在函数式编程范式中也被称为自由变量&#xff0c;是指并不是在闭包内定义的变量。将自…

“光学行业正被量子颠覆”——行业巨头齐聚,展示量子成果

OFC是全球最大的光网络和通信盛会&#xff0c;代表一系列产品&#xff0c;从光学元件和设备到系统、测试设备、软件和特种光纤&#xff0c;代表整个供应链&#xff0c;并提供业界学习、连接、建立网络和达成交易的首要市场&#xff0c;于2024年3月24日至28日在圣地亚哥会议中心…

HarmonyOS入门--配置环境 + IDE汉化

文章目录 下载安装DevEco Studio配置环境先认识DevEco Studio界面工程目录工程级目录模块级目录 app.json5module.json5main_pages.json通知栏预览区 运行模拟器IED汉化 下载安装DevEco Studio 去官网下载DevEco Studio完了安装 配置环境 打开已安装的DevEco Studio快捷方式…

百源生物诚邀您参观2024上海生物发酵产品与技术装备展

参展企业介绍 百源生物致力于提高微生物工业发酵的过程控制水平&#xff0c;以“发酵过程的智能化”为公司使命&#xff0c;通过反应器设计、营养量化、代谢监控及数据分析等手段让复杂的微生物发酵过程变得透明简单&#xff0c;从而实现发酵过程的精确量化控制。 公司…

4. 面向对象编程(上)

文章目录 4. 面向对象编程&#xff08;上&#xff09;4.1 面向过程和面向对象4.2 类和对象4.2.1 类对象得使用4.2.2 类对象的内存解析4.2.3 匿名对象 4.3 类的成员之一&#xff1a;属性4.3.1 成员变量和局部变量 4.4 类的成员之二&#xff1a;方法&#xff08;函数&#xff09;…

JAVA面试八股文之集合

JAVA集合相关 集合&#xff1f;说一说Java提供的常见集合&#xff1f;hashmap的key可以为null嘛&#xff1f;hashMap线程是否安全, 如果不安全, 如何解决&#xff1f;HashSet和TreeSet&#xff1f;ArrayList底层是如何实现的&#xff1f;ArrayList listnew ArrayList(10)中的li…

【超图 SuperMap3D】【基础API使用示例】54、超图SuperMap3D -鼠标左键拖拽绘制圆

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 通过左键按下拖拽的方式在地图上进行贴地的圆绘制 完整代码拷贝直接本地运行即可查看效果效果 核心代码 // 绘制圆形 function startDrawCircleHand…