HTTP协议-响应报文详解(Respond)

目录

前言:

1.Respond报文

1.1报文格式

1.2格式图解

2.状态行(首行)

2.1状态码/状态码解释

(1)200 OK

(2)404 Not Found

(3)403 Forbidden

(4)405 Method Not Allowed

(5)500 Internal Server Error

(6)504 Gateway Timeout

(7)302 Move temporarily

(8)301 Moved Permanently

2.2状态码小结

2.3版本号

3.响应报头(Header)

3.1报头格式

3.2常见属性

(1)Content-Type

(2)Content-Length

4.空行

4.1空行标识

4.2空行作用

5.响应正文

5.1正文标识

5.2正文内容


前言:

 在了解完HTTP协议的基本内容和HTTP请求报文,本节主要针对HTTP协议的第二种报文-响应报文进行详解,对报文的具体格式以及每个关键词含义进行详细介绍。

序列:HTTP/HTTPS - 003


1.Respond报文

1.1报文格式

HTTP协议响应是以字符文本的格式传输,具体包含以下四大部分:

  1. 首行:[版本号]+[状态码]+[状态码解释],分别使用空格分隔;
  2. 响应头(Header):请求的属性,每个键值对独占一行,冒号+空格分割键和值;
  3. 空行:遇到空行表示Header部分结束;
  4. 正文(Body):空行后面的内容都是Body,Body允许为空字符串。如果Bodv存在,则在Header中会有一个Content-Length属性来标识Body的长度。如果服务器返回了一个html页面,那么html页面内容就是在body中。

1.2格式图解

 具体的响应Respond报文格式分布如图:

 开发中实际的响应报文实例: 

下文将针对响应报文这四大部分内容进行具体详解。 

2.状态行(首行)

[版本号]+[状态码]+[状态码解释]。

2.1状态码/状态码解释

 状态码表示访问一个页面的结果(是访问成功,还是失败,还是其他的一些情况....)。

以下为常见的状态码。

(1)200 OK

“200”表示访问服务器成功,这是一个最常见的状态码。

(2)404 Not Found

“404”表示请求访问的资源,在服务器上不存在。

(3)403 Forbidden

“403”表示访问被拒绝,当前主机没有权限。

有的页面通常需要用户具有一定的权限才能访问(登陆后才能访问),如果用户没有登陆直接访问,就容易见到403。

(4)405 Method Not Allowed

“405”表示访问的服务器不支持当前请求所用的方法。

HTTP中所支持的方法有GET,POST,PUT,DELETE等,但是对方的服务器不一定都支持所有的方法(或者不允许用户使用一些其他的方法)。

(5)500 Internal Server Error

“500”表示访问的服务器出现内部错误,这是一个不常见的状态码。

一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃),会产生这个状态码。

平时常用的网站很少会出现500(但是偶尔也能看到)。

(6)504 Gateway Timeout

“504”表示访问的服务器负载比较大,可能会导致出现超时的情况。

当服务器负载比较大的时候,服务器处理单条请求的时候消耗的时间就会很长,就可能会导致出现超时的情况。

(7)302 Move temporarily

“302”表示访问的服务器临时重定向,临时需要跳转到其他页面。

登陆页面中经常会见到 302,用于实现登陆成功后自动跳转到主页响应报文的header部分会包含一个Location字段,表示要跳转到哪个页面。

(8)301 Moved Permanently

“301”表示访问的服务器永久重定向,永久性的跳转到其他页面。

永久重定向,当浏览器收到这种响应时,后续的请求都会被自动改成新的地址。

301也是通过Location字段来表示要重定向到的新地址。

2.2状态码小结

状态码总结:

  • 以1开头表示信息性状态码;
  • 以2开头表示成功状态码;
  • 以3开头表示重定向状态码;
  • 以4开头表示客户端错误状态码;
  • 以5开头表示服务器错误状态码;

2.3版本号

 版本号表示本次HTTP协议的响应使用的是HTTP协议的具体哪个版本。与请求报文相对应,否则会出现通信错误。

如:HTTP1.0、HTTP1.1和HTTP2.0。

3.响应报头(Header)

3.1报头格式

 响应的属性,header的整体的格式也是“键值对”结构。每个键值对占一行,键和值之间使用分号分割。

响应报头的基本格式和请求报头的格式基本一致,类似于Content-Type,Content-Length等属性的含义也和请求中的含义一致。

报头的种类有很多,此处仅介绍几个常见的。

3.2常见属性

响应报头中的属性有很多都和请求报头中表示的含义相同,下边只介绍两个最关键的即可。

(1)Content-Type

表示响应的Body中的数据格式(响应报文里有Body,才有该属性存在)。

HTTP协议的响应格式一般有:

  1. html
  2. css
  3. JavaScript
  4. json
  5. 图片

后续给服务器提返回给主机,不同的Content-Type,服务器处理数据的逻辑是不同的。

服务器返回数据给浏览器,也需要设置合适的Content-Type,浏览器也会根据不同的Content-Type 做出不同的处理。

(2)Content-Length

 表示Body中的数据长度(请求报文里有Body,才有该属性存在)。

4.空行

4.1空行标识

遇到空行表示Header(报头)部分结束,同时也是Body(正文)部分开始。

4.2空行作用

 HTTP在传输层依赖TCP协议,TCP是面向字节流的,如果没有这个空行,就会出现“粘包问题”,空行就可以解决上述问题。

5.响应正文

5.1正文标识

空行后面的内容都是Body,Body允许为空字符串。

正文的具体格式取决于Content-Type。

5.2正文内容

正文的内容可以是:

  1. html
  2. css
  3. JavaScript
  4. json
  5. 图片

以上便是HTTP协议的响应报文详解Respond。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习笔记】 6 机器学习库Scikit-learn

Scikit-learn概述 Scikit-learn是基于NumPy、 SciPy和 Matplotlib的开源Python机器学习包,它封装了一系列数据预处理、机器学习算法、模型选择等工具,是数据分析师首选的机器学习工具包。 自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了&#xff…

C++中类的6个默认成员函数 【拷贝构造函数】

文章目录 拷贝构造函数的使用拷贝构造对于自定义类型【浅拷贝】深拷贝拷贝构造函数典型调用场景 拷贝构造函数的使用 在前几章学习对象的时候,我们有的时候需要一个与已存在对象一某一样的新对象 那在创建对象时,可否创建一个与已存在对象一某一样的新对…

数值类型的运算方式总结

提纲1:常见的位运算使用场景 提纲2:整数类型运算时的类型溢出问题,产生原因以及解决办法 提纲3:浮点类型运算时的精度丢失问题,产生原因以及解决办法 数值类型(6种)分为: 整型&…

简易绘图软件(水一期)

哈哈&#xff01; 1、编写代码&#xff1a; 代码&#xff1a; main: #include <graphics.h> #include <music.h> #include <heker.h> #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )using…

【python】python入门(输出)

本篇文章将会介绍关于python的常见输出&#xff0c;希望对您有帮助&#xff01; 输出 用到print函数 print(oh mygod)##或者 print("oh mygod")##或者 print("oh"" ""mygod") 输出结果&#xff1a; 用单引号、双引号都可以 ,引号中可…

单片机学习笔记---LCD1602

LCD1602介绍 LCD1602&#xff08;Liquid Crystal Display&#xff09;液晶显示屏是一种字符型液晶显示模块&#xff0c;可以显示ASCII码的标准字符和其它的一些内置特殊字符&#xff08;比如日文的片假名&#xff09;&#xff0c;还可以有8个自定义字符 显示容量&#xff1a;…

Linux 幻兽帕鲁服务器怎么上传存档文件?

通过控制台远程连接到 Linux 服务器后&#xff0c;你可以打开文件树&#xff0c;然后找到幻兽帕鲁存档位置&#xff0c;将存档压缩包上传到 Pal 目录中。 记得替换存档前要先停止服务。 2. 然后将 Saved.tar 文件解压&#xff0c;并完全替换新服务器上的 Saved 存档目录即可。 …

蓝桥杯:C++排序

排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的&#xff0c;而是对数值按位划分&#xff0c;按照以空间换取时间的思路来排序。看起来它们的复杂度更好&#xff0c;但实际…

真假难辨 - Sora(OpenAI)/世界模拟器的技术报告

目录 引言技术报告汉译版英文原版 引言 Sora是OpenAI在2024年2月15日发布的世界模拟器&#xff0c;功能是通过文本可以生成一分钟的高保真视频。由于较高的视频质量&#xff0c;引起了巨大关注。下面是三个示例&#xff0c;在示例之后给出了其技术报告&#xff1a; tokyo-wal…

博途PLC While指令编程应用(SCL代码)

FOR循环和While指令都可以实现循环控制。在循环体内部&#xff0c;你可以编写需要重复执行的代码。WhIile在每次循环开始之前&#xff0c;都会检查条件是否为真。如果条件为真&#xff0c;则执行循环体内的代码&#xff1b;如果条件为假&#xff0c;则跳出循环&#xff0c;继续…

Android Studio 实现图书借阅(管理)系统

&#x1f345;文章末尾有获取完整项目源码方式&#x1f345; 目录 前言 一、任务介绍 1.1 背景 1.2目的和意义 二、 实现介绍 视频演示 2.1 启动页实现 2.2 注册页面实现 2.3 登陆页面实现 2.4 图书列表的实现 2.5 当前借阅页面实现 2.6 我的页面实现…

你知道.NET的字符串在内存中是如何存储的吗?

一、字符串对象的内存布局 从“值类型”和“引用类型”来划分&#xff0c;字符串自然属于引用类型的范畴&#xff0c;所以一个字符串对象自然采用引用类型的内存布局。引用类型实例的内存布局总的来说整个内存布局分三块&#xff1a;ObjHeader TypeHandle Payload。对于一般…

如何在Windows中配置多个显示器?这里提供详细步骤

Windows可以通过多种方式使用多个显示器,扩展或复制主显示器。你甚至可以关闭主显示器。以下是如何使用简单的键盘快捷键更改辅助显示设置。 使用Windows+P投影菜单 要快速更改Windows 10处理多个显示器的方式,请按Windows+P。屏幕右侧会弹出一个名为“投影”的深灰色菜单。…

Codeforces Round 926 F. Sasha and the Wedding Binary Search Tree

F. Sasha and the Wedding Binary Search Tree 题意 给定一颗二叉搜索树&#xff0c;规定树上的所有点的点权都在范围 [ 1 , C ] [1, C] [1,C] 内&#xff0c;树上的某些节点点权已知&#xff0c;某些节点点权未知&#xff0c;求出合法的二叉搜索树的数量 思路 由于是二叉搜…

Web项目利用MybatisPlus进行分页查询

之前在写博客系统前台页面的时候&#xff0c;遇到了利用mp进行分页查询的情况&#xff0c;由于涉及到的知识点相对较为重要&#xff0c;固写一篇博客以此巩固。 一、功能需求 在首页和分类页面都需要查询文章列表。 首页&#xff1a;查询所有的文章分类页面&#xff1a;查询…

隐函数的求导【高数笔记】

1. 什么是隐函数&#xff1f; 2. 隐函数的做题步骤&#xff1f; 3. 隐函数中的复合函数求解法&#xff0c;与求导中复合函数求解法有什么不同&#xff1f; 4. 隐函数求导的过程中需要注意什么&#xff1f;

透光力之珠——光耦固态继电器的独特特点解析

光耦固态继电器作为现代电子控制领域中的重要组件&#xff0c;以其独特的特点在工业、通信、医疗等多个领域得到广泛应用。本文将深入剖析光耦固态继电器的特点&#xff0c;揭示其在电子控制中的卓越性能。 光耦固态继电器的光电隔离技术 光耦固态继电器以其光电隔离技术而脱颖…

深入了解社区店:定义、模式与优势

在当今的商业环境中&#xff0c;社区店正逐渐成为创业者们关注的热点。本文将以我的鲜奶吧店铺为例&#xff0c;深入探讨社区店的定义、模式和优势&#xff0c;为您提供最有价值的干货信息。 1、社区店的定义 社区店是指位于社区内或周边&#xff0c;以服务社区居民为主要目标…

Diffusion Transformer U-Net for MedicalImage Segmentation

用于医学图像分割的扩散变压器U-Net 摘要&#xff1a; 扩散模型在各种发电任务中显示出其强大的功能。在将扩散模型应用于医学图像分割时&#xff0c;存在一些需要克服的障碍:扩散过程调节所需的语义特征与噪声嵌入没有很好地对齐;这些扩散模型中使用的U-Net骨干网对上下文信…

2.15学习总结

2.15 1.聪明的质监员&#xff08;二分前缀和&#xff09; 2.村村通&#xff08;并查集&#xff09; 3.玉蟾宫(悬线法DP) 4.随机排列&#xff08;树状数组逆序对问题&#xff09; 5.增进感情&#xff08;DFS&#xff09; 6.医院设置&#xff08;floyd&#xff09; 聪明的质监员…