【javaWeb 第五篇】后端-Http协议学习

HTTP协议

  • HTTP概述
  • HTTP-请求数据格式
  • HTTP响应格式
  • HTTP-协议解析

HTTP概述

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

       简述概念就是,浏览器需要向服务器发送请求,想要得到服务器中的数据,但是服务器又怎么知道浏览器想要哪部分数据呢?这个时候就定义了一个规则,浏览器通过这个格式向服务器发送请求,服务器通过规定好的格式来分析这个请求,得到浏览器想要什么,之后服务器将数据传递给浏览器,那浏览器又怎么能够知道它发的什么内容呢?,这个时候也要通过制定的规则进行解析。这个规则就是HTTP协议

  • 查看协议

打开开发者工具,显示网络请求:
在这里插入图片描述
请求数据Request Headers,点击view进行查看:
在这里插入图片描述
在进行请求的时候将该文本传递给服务器端
上述第一行称为请求行,后边都是请求头,格式是 请求头名字:值
响应数据
服务器响应回来的数据就是上述一段字符串

  • HTTP协议的特点
  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
    缺点:多此请求间不能共享数据
    优点:速度快

HTTP-请求数据格式

  • 请求行

上述图片请求数据第一行,(请求方式,资源路径,协议)

GET /brand/findAll?name=OPPO&status=1 HTTP/1.1	
  • 请求头

上述图片剩余部分的内容(格式 key:value)
请求头之中的内容类型:
内容类型

  • 请求体

post请求独有的数据格式,用于存放请求参数
请求方式-GET:请求参数在请求行中,没有请求体
请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的

HTTP响应格式

  • 响应行

响应数据第一行(协议,状态码,描述 )
描述用来描述前面的状态
例如:

HTTP/1.1 200 OK

请求头状态码:
在这里插入图片描述
当进行重定向的时候:
在这里插入图片描述
重定向:例如浏览器访问A服务器,A服务器没有数据,需要转到B服务器中,则A向浏览器发送重定向状态码,以及相关信息,浏览器自动再次请求B服务器进行访问并取得数据

4xx:表示客户端出现的错误

例如,发送的地址,服务器中不存在该地址资源,需要检查客户端的请求路径以及请求参数

5xx:表示服务器端错误:

比如由于代码的bug出现的异常,此时就会响应5xx状态码,出错后需要通过观察日志信息查询错误

常见的响应状态码
在这里插入图片描述

  • 响应头

第二行开始,格式key:value
常见的响应头:
在这里插入图片描述

  • 响应体

最后一部分,存放响应数据

HTTP-协议解析

浏览器已经内置了解析http协议的内置程序,无论是发送请求还是响应数据都能够进行解析,但是后端服务器需要自己进行内置解析
我们可以通过ServerSocket类来实现后端对请求的解析
由于后端解析请求的代码繁琐又庞大,我们使用web服务器来替代手动解析Http协议
我们常用的Web服务器:Tomcat服务器
具体的学习参照第六篇内容

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

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

相关文章

2014年认证杯SPSSPRO杯数学建模B题(第一阶段)位图的处理算法全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 B题 位图的处理算法 原题再现: 图形(或图像)在计算机里主要有两种存储和表示方法。矢量图是使用点、直线或多边形等基于数学方程的几何对象来描述图形,位图则使用像素来描述图像。一般来说&#…

Share-ChatGPT官网UI/文件上传/联网搜索/GPTS 一并同步

地址:Share-ChatGPT 文章目录 界面UI,GPTS,读论文,数据分析,写论文视频演示仓库地址 界面 支持多账号同时管理,合理利用资源: UI,GPTS,读论文,数据分析&a…

论文篇06-论文范文-论基于架构的软件设计方法ABSD及应用(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

试题 试题:论基于架构的软件设计方法(ABSD)及应用 基于架构的软件设计(Architecture-Based Software Design,ABSD)方法以构成软件架构的商业、质量和功能需求等要素来驱动整个软件开发过程。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础…

Go语言学习Day3:数据类型、运算符与流程控制

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据类型①布尔类型②整型③浮点型④string⑤类型转换 2、运算符①算术运算符②逻辑运算符③关…

竞赛 python 爬虫与协同过滤的新闻推荐系统

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python 爬虫与协同过滤的新闻推荐系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&…

Go-Gin-Example 第八部分 优化配置接口+图片上传功能

文章目录 前情提要本节目标 优化配置结构讲解落实修改配置文件优化配置读取及设置初始化顺序第一步 验证 抽离file 实现上传图片接口图片名加密封装image的处理逻辑编写上传图片的业务逻辑增加图片上传的路由 验证实现前端访问 http.FileServerr.StaticFS修改文章接口新增、更新…

Spark RDD、DataFrame和DataSet的区别

Spark RDD、DataFrame和DataSet的区别 在比较这三者的区别之前,先看看他们各自的定义是什么。 Spark RDD RDD是一种弹性分布式数据集,是一种只读分区数据。它是spark的基础数据结构,具有内存计算能力、数据容错性以及数据不可修改特性。 S…

[CISCN2019 华东北赛区]Web2

[CISCN2019 华东北赛区]Web2 随便注册一个登录,发现 还有反馈页面,一看就知道大概率是xss,应该是为了得到管理员cookie扫描了一下,果然有admin.php后台登录 buu可以连接访问外网了,所以内部的xss平台关闭了&#xff0…

静态住宅IP好用吗?怎么选择?

在进行海外 IP 代理时,了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和,并提供选择建议,帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

深度理解文件操作

目录 文件 文件名: 标准流 文件指针 文件的打开和关闭 文件的顺序读写: 使用部分 文件的打开和关闭 文件 文件分两种,第一种是程序文件,后一种是数据文件。 程序文件:包括源程序文件(后缀为.c&…

如何使用WordPress插件保护网站的安全

前段时间我们的网站受到了黑客的攻击,网站丢失了一些重要的数据,为了防止这种情况的再次发生,我们准备将网站全部迁移到高防服务器,经过一番对比后,我们选择了Hostease提供的高防服务器。它可以有效地抵御各种类型的网…

银行单元化架构体系介绍

1.背景 自2018年以来,受“华为、中兴事件”影响,我国科技受制于人的现状对国家稳定和经济发展都提出了严峻考验。目前我国IT架构体系严重依赖国外产品,金融行业尤其明显。大部分传统银行的关键账务系统都架设在IBM的大型机、小型机之上&…

【jenkins+cmake+svn管理c++项目】创建一个项目

工作台点击"新建item",进入下图,选择Freestyle project,并输入项目名称, 点击确定之后进入项目配置页面,填写描述,然后在下边源码管理部分选择svn, 填写代码的url 上图的Credentials处填写svn的有效登录名和密码&#x…

VMware虚拟机中的Ubuntu Samba映射Windows10文件夹

sudo apt-get install samba安装Samba mkdir share创建共享文件夹 sudo vim /etc/samba/smb.conf编辑配置文件 [share]comment VMware Ubuntu Sharepath /home/zhu/share browseable yeswritable yescreate mask 777comment 是简介 path 是共享文件夹的路径&#xff0c…

【MATLAB源码-第15期】基于matlab的MSK的理论误码率与实际误码率BER对比仿真,采用差分编码和IQ调制解调。

操作环境: MATLAB 2022a 1、算法描述 在数字调制中,最小频移键控(Minimum-Shift Keying,缩写:MSK)是一种连续相位调制的频移键控方式,在1950年代末和1960年代产生。[1] 与偏移四相相移键控&a…

“数字化”持续走热,VR全景助力制造业上“云”

制造业要升级,数字化改造是重要途径。 早年间,由于对数字化的认识不足,一些企业明明有数字化改造需求,却不敢、不愿、不会上“云”。直到此次两会期间,2024年政府工作报告再次提出推动制造业数字化转型,越…

网络——套接字编程TCP

目录 服务端 创建套接字(socket) 服务端绑定(bind) 服务端监听(listen) 服务器接收(accept) 服务端处理(read & write) 客户端 创建套接字&#…

CVE-2022-33891 Apache Spark shell 命令注入漏洞分析

漏洞简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架 Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的…

鸿蒙OS开发实例:【demo选择列表限定数量】

效果图: 示例代码 // 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本为 api 9 及以上。 // 主要功能及注意事项: // 该组件展示了一个乘客选择列表。列表中的每个项目包含一个复选框和对应的乘客姓名, // 用户点击任意一…

MATLAB 自定义生成圆柱点云(49)

MATLAB 自定义生成圆柱点云(49) 一、算法介绍二、具体实现1.代码2.效果一、算法介绍 按照一些提前指定的圆柱参数,自定义生成圆柱点云,可添加噪声,用于后续的实验测试 二、具体实现 1.代码 代码如下(示例): % 指定圆柱的参数 radius = 5; % 圆柱半径 height = 20…