【计算机网络学习之路】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/205741.shtml

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

相关文章

企业计算机服务器中了mallox勒索病毒如何处理,Mallox勒索病毒解密

随着计算机技术的不断发展,越来越多的企业利用网络来提高工作效率,但随之而来的网络安全威胁也在不断增加,各种勒索病毒种类不断增加,给企业的数据安全带来严重的威胁,影响企业的生产业务开展。近期,云天数…

opencv的图像直方图处理

1 opencv的直方图 1.1 什么是直方图 直方图是对数据进行统计的一种方法,用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间(也称为“箱子”或“bin”),然后统计每个区间中数据出现的频次(或频…

Flink-源算子-读取数据的几种方式

Flink可以从各种来源获取数据,然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源(data source),而读取数据的算子就是源算子(source operator)。所以,source就是我们整个处理程序…

微服务2 Docker学习 P42-P60

Docker学习视频https://www.bilibili.com/video/BV1LQ4y127n4?p42&vd_source8665d6da33d4e2277ca40f03210fe53a 文档资料: 链接:https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码:d03r Docker 其他笔记 服务器容器化-docker(全…

redis-学习笔记(list)

因为 list 可以头插头删, 尾插尾删, 所以其实更像 C 中的 deque (双端队列) ---- 知道就好, 别乱说, 具体底层编码是啥, 俺也不知道(没注意过) 可以通过组合, 把 list 当作队列 / 栈来用 list 的几种底层编码: ziplist(压缩列表) , linkedlist(链表) , quicklist ziplist 就是将…

12-07 周四 Pytorch 使用Visdom 进行可视化

简介 在完成了龙良曲的Pytroch视频课程之后,楼主对于pytroch有了进一步的理解,比如,比之前更加深刻的了解了BP神经网络的反向传播算法,梯度、损失、优化器这些名词更加熟悉。这个博客简要介绍一下在使用Pytorch进行数据可视化的一…

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架

1.安装ThinkPHP6框架 这里我们使用的是composer安装的安装方式,请确保电脑已经安装了composer,如未安装可查看Composer 安装与使用 | 菜鸟教程 composer create-project topthink/think tp 上面命令安装的是稳定版的,也是最新的稳定版&…

Jquery easyui异步提交表单的两种方式

这篇文章分享一下easyui常用的两种表单异步提交的方式。 目录 第一种:利用ajax提交 $.post() $.ajax() 第二种:使用easyui提供的表单提交方式 首先,准备一个简单的表单,包含三个输入框,在页面引入easyui的js文件。…

探索 HTML 语义化:让你的网页更有意义(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【Linux】进程通信之命名管道mkfifo

1.认识命名管道 匿名管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。命名管道是一种特殊类型的文件 2.在命…

时间序列预测实战(二十四)PyTorch实现RNN进行多元和单元预测(附代码+数据集+完整解析)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行RNN时间序列卷积进行时间序列建模(专门为了时间序列领域新人编写的架构,简单且不同于市面上大家用GPT写的代码),包括结果可视化、支持单元预测、多元预测、模型拟合…

【Java代码接口自动化测试】REST Assured接口测试 HTTPClient接口测试

近几年接口自动化变得越来越热门,相对比于UI自动化,接口自动化有一些优势 1.运行比UI更稳定,让BUG更容易定位 2.UI自动化维护成本太高,接口相对低一些 接口测试其实有很多方式,主要有两种,一个是工具&am…

JM中ref_pic_list_modification bug记录

问题描述 今天在用JM对YUV420p编码时,发现编出的码流用ffplay播放花屏,报如下错误: JM的版本时19.1,没有使能B帧,PicOrderCntType设置为2,其它都是encoder.cfg中的默认配置。我用一些码流分析工具播放H264码流正常,用一些播放器播放也都存在花屏,不过大多数播放器都是…

k8s集群部分使用gpu资源的pod出现UnexpectedAdmissionError问题

记录一次排查UnexpectedAdmissionError问题的过程 1. 问题 环境 3master节点N个GPU节点 kubelet版本:v1.19.4 kubernetes版本:v1.19.4 生产环境K8S集群,莫名其妙的出现大量UnexpectedAdmissionError状态的Pod,导致部分任务执…

12.07

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//窗口设置//去掉表头this->setWindowFlags(Qt::FramelessWindowHint);//重新设置大小this->resize(800,420);//设置背景颜色this->setStyleSheet("background-color:whi…

【推荐系统】了解推荐系统的生态(重点:推荐算法的主要分类)

【大家好,我是爱干饭的猿,本文重点介绍推荐系统的关键元素和思维模式、推荐算法的主要分类、推荐系统常见的问题、推荐系统效果评测。 后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一…

javaee实验:Spring Boot 整合 Mybatis

目录 MybatisMyBatis 框架简介Mybatis 框架执行流程图映射器 实验目的实验内容实验过程数据库准备项目结构代码实现 实验结果 Mybatis MyBatis 框架简介 Mybatis 的前身是 Apache 的开源框架 iBatis,与 Hibernate 一样是一个 Java 持久层的框 架。Mybatis 的优势在…

使用Python实现的Excel像素画

简介:本项目主要使用python语言,将图片转为 Excel,图片中的每一个像素转化为 Excel 中的每一个单元格。主要使用pillow和xlsxwriter这两个模块。项目使用一个python文件即可。 一:项目功能和流程介绍 项目的主要功能&#xff1a…

Python-封装配置文件

Code [url] baidu http://www.baidu.com[value] send_value 百度[server] ip 220.181.111.188封装的格式可以套用 # 封装,类似函数调用 import configparserclass ReadConfigIni():def __init__(self,filename):self.cf configparser.ConfigParser()self.cf.read(filenam…

Pr项目标准化ProjectNormalizer插件|解决PR剪辑视频在Windows和Mac电脑切换打开pr项目工程文件需要重新链接媒体问题

当我们在 Windows 中打开在 Mac 上剪辑视频的 Premiere Pro 项目文件时,需要重新链接媒体。通常,如果选中“自动重新链接其他人”复选框,媒体将在某种程度上链接在一起。但是,有时这是行不通的,并且可能是一个非常困难…