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

2024-03-27 06:12

本文主要是介绍【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服务器
具体的学习参照第六篇内容

这篇关于【javaWeb 第五篇】后端-Http协议学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/851177

相关文章

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注