【计算机网络】HTTP响应报文Cookie原理

目录

HTTP响应报文格式

一. 状态行

状态码与状态码描述

二. 响应头

一. 前因

二. Cookie的状态管理

结束语


HTTP响应报文格式

HTTP响应报文分为四部分

  • 状态行:包含三部分:协议版本,状态码,状态码描述
  • 响应头:响应体的一些属性信息
  • 空行:由回车符和换行符组成---\r\n
  • 响应体(有效载荷):响应给请求方的内容,如网页,视频,音频等

PS:我们访问腾讯网其中的每一个可以点击的链接,都会发起一次HTTP请求

一. 状态行

状态行包含三部分,彼此之间使用空格分隔

协议版本是服务器使用的HTTP的协议版本。方便和客户端的HTTP协议进行版本兼容

状态码与状态码描述

类别原因短语
1XXInformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器)服务器处理请求出错

  • 2XX状态码
  • 表示服务器已成功收到请求并进行处理
状态码状态码英文名称中文描述
200OK请求成功。一般与GET与POST请求
201Created已创建。成功请求并创建了新的资源。通常用于POST或PUT请求

  • 3XX状态码
  • 表示服务器要求客户端重定向,需要客户端进一步的操作已完成资源的请求
状态码状态码英文名称中文描述
301Moved Permanently永久移动。请求的资源已经被永久的移动到新的URL,返回信息会包括新的URL,浏览器会自动定向到新URL。今后任何新的请求都应使用新的URL替代
302Found临时移动。与301类似。但资源只是被临时移动。客户端应继续原有URL访问
304Not Modified未修改。所请求的资源未修改,服务器返回状态码时,不会返回任何资源(响应信息中不包含响应体)。客户端通常会缓存访问过的资源
  • 4XX状态码
  • 表示客户端的请求有非法内容
状态码状态码英文名称中文描述
401Unauthorized当前请求需要用户验证
403Forbidden服务器已经理解请求,但拒绝执行
404Not Found请求失败。服务器无法根据客户端的请求找到资源(网页)
408Request Timeout请求超时。服务器等待客户端发送的请求时间过长,超时
400Bad Request

1. 语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求

2. 请求参数有误

  • 5XX状态码
  • 表示服务器未能正常处理客户端的请求而出现意外错误
状态码状态码英文名称中文描述
500Internal Server Error服务器遇到了不知道如何处理的情况。
501Not Implemented此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。
503Service Unavailable服务器没有准备好处理请求。由于超载或系统维护,服务器暂时的无法处理客户端的请求。

常见的状态码比如200(OK),404(Not Found),403(Forbidden),302(Redirect 重定向),504(Bad Gatewat)

完整的响应状态码及描述可以参看MDN官方文档:HTTP 响应状态码 - HTTP | MDN

补充:重定向

访问网页的不仅有用户,还有爬虫。永久重定向的应用之一就是服务搜索引擎。当搜索引擎爬虫到一个永久重定向的网页,就会将新的URL替代原先的URL,不需要每次都重定向

二. 响应头

响应头都是以KV关系保存的信息,包含附加动作,响应体(有效载荷)的属性等

常见的响应头:

Content-Length:响应体(有效载荷)的长度

Content-Type:响应体(有效载荷)的类型(网页,图片,音频等)

Content-Language:响应体(有效载荷)的语言环境

Content-Encoding:响应体(有效载荷)的压缩格式

Location:重定向的位置,新的URL地址、配合301,304使用

Connection:如Keep-Alive,表示保持tcp连接不关闭

referer:当前页面是从哪个页面跳转过来的

Set-Cookie:返回sid,供客户端下次访问使用

一. 前因

HTTP是无状态协议,它不对之前发生的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理

上述现象导致,比如访问B站,VIP视频需要登录验证,但每换一个VIP视频都需要登录验证一次,因为无法根据之前的登录状态进行本次请求处理。这显示是不能接受的

二. Cookie的状态管理

图片来自网络

Cookie是服务端生成的,保存在客户端。Cookie有两种保存方法:

  1. 内存级:保存浏览器运行的内存中
  2. 文件级:(1). 持久,需要手动清理 (2). 非持久,有过期时间

客户端(浏览器)将Cookie保存,并在后续的访问中,将Cookie携带在HTTP请求报文中

结束语

本篇博客到此结束,感谢看到此处。
欢迎大家纠错和补充
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。

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

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

相关文章

如何选择LED天幕屏的型号

随着LED屏幕技术的不断成熟,其应用范围也日益扩大,从传统的墙面固定安装,到落地式、租赁移动式,再到LED互动地砖屏和安装在天花板上的LED天幕屏等,安装方式多种多样。那么,在面对如此多元化的选择时&#x…

PHP基础 - 类型比较

在 PHP 中,作为一种弱类型语言,它提供了松散比较和严格比较两种方式来比较变量的值和类型。 松散比较: 使用两个等号(==)进行比较,只会比较变量的值,而不会考虑它们的数据类型。例如: $a = 5; // 整数 $b = 5; // 字符串if ($a == $b) {echo "相等"; // 输…

C/C++ 编程规范总结

目录 前言 一、编程规范的作用 二、规范的三种形式 三、规范的内容 1. 基本原则 原则1-1 原则1-2 原则1-3 原则1-4 原则1-5 原则1-6 原则1-7 2. 布局 规则2-1-1 规则2-1-2 规则2-1-3 规则2-1-4 规则2-1-5 规则2-1-6 规则2-2-1 规则2-2-2 规则2-2-3 建议2…

简单聊聊使用lombok 的争议

大家好,我是G探险者。 项目里,因为我使用了Lombok插件,然后代码走查的时候被领导点名了。 我心想,这么好用的插件,为啥不推广呢,整天写那些烦人的setter,getter方法就不嫌烦么? 领导…

AidLux:手机/平板上的Linux环境与AI开发利器

AidLux是一个基于ARM架构的跨生态(鸿蒙/AndroidLinux)一站式智能物联网(AIoT)应用开发和部署平台,正受到越来越多开发者和用户的青睐。既可以作为手机/平板上的一个Linux环境使用,也可以作为AI开发利器以发…

Python Django Suit:构建现代化的Django后台管理

概要 Django Suit是一款为Django后台管理提供现代、优雅界面的第三方应用,它致力于提升Django开发者的管理体验。本文将深入介绍Django Suit的安装、配置和高级功能,提供详实的示例代码,帮助大家更好地使用和定制Django后台管理界面。 安装与…

无法解除Word文档限制编辑?上干货

方法一:新建一个文档-点击“插入”-点击“对象”-点击选择中的倒三角-然后选择“文件中的文字”-找到相应文档即可 具体操作界面如下图这个方法会导致格式出现稍稍微的变化 方法二:将受编辑的文件另存为 文件类型一定要选择*.xml 另存好之后是这样的 打…

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.参考…

[C++] STL_priority_queue(优先级队列) 的使用及底层的模拟实现,容器适配器,deque的原理介绍

文章目录 1、priority_queue1.1 priority_queue的介绍和使用1.2 priority_queue的使用模拟实现: 2、容器适配器2.1 什么是适配器2.2 STL标准库中stack和queue的底层结构 3、deque3.1 deque的原理介绍3.2 deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容…

docker配置连接harbor私有仓库

一、前言 以下分为两种情况说明docker对harbor私有仓库的访问配置,一种是harbor使用自建证书配置https,一种是使用公有证书配置https 二、docker配置 harbor使用自建证书的情况 使用自建证书对harbor进行https配置,docker会将该仓库识别成不…

SDXL使用animateDiff和hotshot-xl进行文生视频

截至2023.12.8号,目前市面上有两款适用于SDXL的文生视频开源工具,分别是AnimateDiff和hotshot-xl。 一、工具下载链接 (1)AnimateDiff的webui版本的git链接: GitHub - continue-revolution/sd-webui-animatediff: A…

Postman获取token

问题描述 登录接口中带有token参数,其他接口需要带上token才能正确访问,利用接口查询用户信息时手动在headers中更新token信息并不方便。 解决方案 在登录接口中设置一个名为“token”的环境变量,value为登录接口跑通之后responseBody中返回…

51单片机的独立按键与矩阵按键的使用以及实例分析

IO 的使用–按键 本文主要涉及8051单片机的按键的使用,包括独立按键与矩阵按键。 其中包括实例分析: 独立按键 K1 控制 D1 指示灯亮灭通过数码管显示矩阵按键 S1-S16 按下后键值 0-F 文章目录 IO 的使用--按键一、按键消抖二、独立按键独立按键 K1 控制 …

IAR嵌入式解决方案发布全新版本,增强云调试和仿真功能,推动下一代嵌入式软件开发

通过先进的Arm虚拟硬件集成和Linux系统中增强的基于云的协作,赋能下一代嵌入式软件开发 瑞典乌普萨拉,2023年12月7日 - 嵌入式开发软件和服务的全球领导者IAR宣布推出旗舰产品IAR Embedded Workbench for Arm及IAR Build Tools for Arm最新9.50版本。此…

vue2+datav可视化数据大屏(3)

接上一节所说,当我们将接口封装完了后,我们需要给大屏进行内容填充啦 1,新建组件 📓 我们在ser-views文件夹下新建9个vue组件,如下图所示,我给编号为1到9 📓在组件里写入内容我是第一块...一次类推&#x…

AOSP开机动画调测技术点(基于Android13)

AOSP开机动画调测技术点(基于Android13) 开机动画替换 首先,在你的计算机上创建一个名为"bootanimation"的文件夹,并将"part0"、"part1"和"desc.txt"这三个文件复制到该文件夹中。这些文件包含了开机动画的图像…

基于深度学习的超分辨率图像技术一览

超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率,图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题,在医疗图像分析、生物特征识别、视频监控与安全等实际场景中有着广泛的应用。 SR取得了显著进步。一般可以将现有…

小机器人,电子锁,牙刷,表类开关,磁阀开关等一些安防直流驱动的选型介绍分析 5V,大电流,小封装

安防监控是一门被人们日益重视的新兴行业,就目前发展来看,应用普及程度越来越广,科技含量也越来越高,几乎所有高新科技都可促进其发展,尤其是信息时代的来临,更为该行业的发展提供契机。其中安防领域最为典…

【力扣】刷题备忘录-动归-62. 不同路径

62. 不同路径 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector<int>(n,0));// 2D vector的标准写法 有些麻烦for (int i 0; i < m; i) dp[i][0] 1; // 又忘记写&#xff1b;了。。。for (int j 0; j < …

Blackmagic Design Fusion Studio 18 – 创意视觉特效的全能工具!

无论您是电影制片人、电视广告创作者还是视觉特效艺术家&#xff0c;Blackmagic Design Fusion Studio 18 都是您的完美选择。这款全能视觉特效软件为您提供了无限的创意可能性&#xff0c;助力您打造令人惊叹的视觉效果。 Blackmagic Design Fusion Studio 18 的卓越功能&…