Http 响应协议

server/2024/11/27 17:11:07/

        HTTP的响应协议

        响应数据格式

        响应行 响应数据的第一行,包括协议、状态码、描述

        响应头 从响应数据格式的第二行开始,也是以key:value的格式

        响应体 和响应头之间有一个空行,是响应数据格式的最后一部分,用于存放响应的数据

        常见响应状态码:

         1XX:表示响应中,是临时的状态码;表示请求已经接收了,告诉客户端应该继续请求或客户端已经完成则可以忽略(常见于WebSocket技术)

         2XX:成功,该请求已经被成功接收,并且也成功处理

         3XX:重定向,重定向到其他地方了,让客户端再次发起一次请求可以完成整个处理

         比如:请求百度:http://www.baidu.com,百度的请求路径是https://www.baidu.com,但是请求也会成功 是因为第一次请求http的时候,百度的服务器能够接收,会响应一个307状态码,告诉浏览器需要重定向访问正确的 百度,并且会在响应头中添加Location:https://www.baidu.com这个响应头,浏览器就会根据这个响应的location 再次发起请求,这次就会成功请求到正确的百度 在重定向中,一共有两次请求响应的过程,第一次是请求到了错误的路径,但是服务器成功接收,返回3XX的状态码和 在请求头中添加Location:(正确的路径);浏览器看到状态码是3XX,就会根据Location的路径发起第二次请求, 但是都是由浏览器在极短的时间内完成的,用户无法察觉          4XX:客户端的错误,处理发生错误,责任在于客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等

         5XX:服务器错误,处理发生错误,责任在于服务端。如:客户端程序抛出了异常(500就是服务器端抛异常了)

        通过tomcat服务器封装的HttpServletResponse对象操作响应数据

/*** 和request请求一样,Tomcat服务器也将响应的数据封装成了HttpServletResponse对象,* 可以操作HttpServletResponse对象便捷的封装响应的数据* @param response*/@RequestMapping("/response")public void response(HttpServletResponse response) throws Exception {// 设置响应状态码response.setStatus(302);// 设置响应头response.setHeader("Location", "https://www.baidu.com");// 设置响应体// 响应体需要使用流写入,HttpServletResponse中自带IO流,打开后就可以直接写response.getWriter().write("<h1>Hello Response<h1>");}

        Spring框架提供的ResponseEntity对象更加便捷的操作响应数据

        

/*** 除了Tomcat服务器的封装,Spring提供了操作响应数据的对象ResponseEntity,可以通过ResponseEntity对象* 更加便捷的操作响应数据** @return*/@RequestMapping("/response2")public ResponseEntity<String> response() {return ResponseEntity.status(307).header("Location", "https://www.baidu.com").body("<h1>Spring Response<h1>");}// 但是需要注意的是:响应状态码(status)和响应头(header)没有特殊要求的话,通常不手动设置// 服务器会根据请求处理的逻辑自动设置响应状态码和响应头

 


http://www.ppmy.cn/server/145390.html

相关文章

D2761 适合在个人电脑、便携式音响等系统中作音频限幅用。

概述&#xff1a; D2761是为保护扬声器所设计的音频限幅器&#xff0c;其限幅值可通过外接电阻来调节&#xff0c;适合在个人电脑、便携式音响等系统中作音频限幅用。D2761采用SSOP10、MSOP10、TSSOP14的封装形式封装。 主要特点&#xff1a;  工作电压范围宽&#xff1a;2.7…

idea怎么打开两个窗口,运行两个项目

今天在开发项目的时候&#xff0c;前端希望运行一下以前的项目&#xff0c;于是就需要开两个 idea 窗口&#xff0c;运行两个项目 这里记录一下如何设置&#xff1a;首先依次点击&#xff1a; File -> Settings -> Appearance & Behavior ->System Settings 看到如…

STM32中I2C总线中,允许从机控制SCL总线吗?

在I2C总线中&#xff0c;不允许从机控制SCL总线。关于I2C总线的控制&#xff0c;以下是详细解释&#xff1a; 一、I2C总线的基本构成 I2C&#xff08;Inter IC Bus&#xff09;是由Philips公司开发的一种通用数据总线&#xff0c;它只需要两根串行信号线&#xff1a;串行数据…

Windows安装Node.js

当出现这个的时候&#xff0c;是说明没有安装Node.js。 Node.js安装包及源码下载地址为&#xff1a;Node.js — Download Node.js Package Manager&#xff1a; 使用系统自带的包管理工具&#xff08;如 apt、yum、brew&#xff09;安装。自动管理依赖和更新&#xff0c;适合命…

1138:将字符串中的小写字母转换成大写字母

【题目描述】 给定一个字符串&#xff0c;将其中所有的小写字母转换成大写字母。 【输入】 输入一行&#xff0c;包含一个字符串&#xff08;长度不超过100&#xff0c;可能包含空格&#xff09;。 【输出】 输出转换后的字符串。 【输入样例】 helloworld123Ha 【输出样例】…

异常检测 | 高斯分布拟合算法异常数据检测(Matlab)

异常检测 | 高斯分布拟合算法异常数据检测&#xff08;Matlab&#xff09; 目录 异常检测 | 高斯分布拟合算法异常数据检测&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 【异常值检测–高斯分布拟合算法】matlab数据清洗 #数学建模#创新…

基于 Qt 和 GStreamer 的环境中构建播放器

一、功能与需求分析 功能描述 播放本地视频文件(如 MP4、MKV)。 支持基本控制功能(播放、暂停、停止、跳转)。 提供音量调节功能。 在 Windows 环境下使用 Visual Studio 2022 编译。 技术选型 Qt:用于构建用户界面。 GStreamer:负责视频解码和播放。 Visual Studio 202…

(计算机组成原理)期末复习

第一章 计算机的基本组成&#xff1a;硬件软件&#xff08;程序&#xff09;计算机系统 软件有系统软件&#xff08;系统管理工具&#xff09;&#xff0c;应用软件 计算机硬件&#xff1a;包括主机和外设&#xff0c;主机包括CPU和内存&#xff0c;***CPU由运算器和控制器所组…