http状态码、accept、Content-Type

article/2025/11/1 11:55:03

一、http状态码

(1)http状态码

1XX:信息,服务器收到请求,需要请求者继续执行操作
2XX:成功,操作被成功接收并处理
3XX:重定向,需要进一步的操作以完成请求
4XX:客户端错误,请求包含语法错误或无法完成请求
500:服务器错误,服务器在处理请求的过程中发生了错误

(2)200 OK

表示服务器已成功处理了请求

(3)304重定向

ETag:服务端资源唯一标识符(优先级高于Last Modified)

Last-Modified:资源在服务器最后修改的时间(精确到秒)-> 所以需要唯一标识符

访问流程:

  1. 第一次访问index.html(响应头)-- 200 OK
    在这里插入图片描述

  2. 第二次访问index.html(响应头/请求头)-- 304 Not Modified
    在这里插入图片描述

  3. 修改Index.html第三次访问(响应头/请求头)-- 200 OK
    在这里插入图片描述

请求头的if-modified-since、if-None-match是上一次响应头的ETag、Last-modified
(第一次请求还没有if-modified-since、if-None-match)

口述:
客户端发送请求到服务端,服务端返回ETag、Last-modified在响应头,状态码为200 OK

第二次发送,如果请求头的if-modified-since、if-None-match与响应头的Last-modified、Etag一致则采用本地缓存,状态码为304 not modified

第三次发送,只要修改了资源,服务端会自动保存新的Etag和Last-modified,状态码为200 OK

(4)302重定向

通过服务器程序重定向(跳转到新的页面) ,新页面的状态码为302 Found

(5)404页面错误

页面不存在,状态码为404 Not Found

(6)403服务器拒绝请求

服务器拒绝请求(服务器关闭,没有权限访问服务器),状态码为403 Forbidden

(7)500服务器发生不可预测的错误

服务器发生不可预测的错误,状态码为500 Internal Server Error

(8)503服务器不能处理客户端请求

服务器当前不能处理客户端请求(关闭应用程序池或者程序标识出错或者程序池队列已满),
状态码为503 Server Unavailable

二、Accept (请求头)

(1)Accept

在这里插入图片描述

Accept:代表客户端希望接收的数据类型

q:相对品质因子,权重,它从0到1的范围指定优先顺序,没有指定,质量值默认为“q=1”,如赋值为0,则提醒服务器该内容类型不被浏览器接收

格式:type;q=value, type;q=value(逗号分割)

例如:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/apng,/;q=0.8
          最希望接收到text/html,application/xhtml+xml, 其次是application, 再其次是其它任意数据类型

:通配符,/*任意类型

(2)Accept-Encoding

Accept-Encoding:gzip, deflate, br
浏览器可以接受的资源编码格式(压缩格式)

(3)Accept-Language

Accept-Language:zh-CN,en-US;q=0.8,en;q=0.6
浏览器支持的语言是简体中文、其次是美国英语、再其次是其他形式的英语

三、Content-Type (响应头)

(1)Content-Type

在这里插入图片描述
Content-Type:返回资源类型与编码

例如:Content-Type: text/html; charset=UTF-8(Accept-Charset)

(2)Content-Encoding

COntent-Encoding:gzip

服务器返回资源的编码格式(压缩个事,优化传输内容的大小)

(3)Content-Language

Content-Language:zh-CN

说明返回资源的语言类型


http://chatgpt.dhexx.cn/article/F7lcBaGf.shtml

相关文章

Gated-Attention Readers for Text Comprehension

Gated-Attention Readers for Text Comprehension 文本理解中的门控attention阅读器 code Abstract 本文研究的是完形填空问题式MRC,作者提出的门控注意力阅读器集中了多跳结构和一种新的注意力计算机制(基于query嵌入和RNN文档阅读器中间状态之间的…

Html中Input的accept属性

Accept属性规定通过在文件上传提交的服务接受的文件类型 但是accept属性只能适用在Html input类型为文件类型,也就是说其他类型的input accept属性就不适用 我写的这个过滤文件属性是针对于后缀名为.xls的文件,所有的文件只要不是.xls后缀就不显示出来…

ApplicationContext

如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。 1、ApplicationContext ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径…

ActionContext

1、ActionContext翻译成中文就是Action的上下文(为什么说是上下文,是应为他的生命周期长,和我们的项目的生命周期是相同的,我们很多公共的东西都放在里面,方便存取 ),ActionContext是struts2的上…

readonly option is set (add ! to override)错误的解决

在mac电脑或linux系统中经常操作修改某个文件后保存退出出现readonly option is set (add ! to override)。如图: 正常情况下按 A进入编辑模式修改文件后按ESC退出编辑模式,:wq命令保存退出,但经常会遇到以上显示,文件权限只读或者…

ByteBuffer的allocate和allocateDirect

在Java中当我们要对数据进行更底层的操作时,通常是操作数据的字节(byte)形式,这时常常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式: Java代码 public static ByteBuffer allocate(int capacity…

直接内存 直接内存的释放和回收

直接内存 特点 不属于Java虚拟机管理,属于系统内存;属于操作系统,常见于NIO操作时,比如ByteBuffer【】用于数据缓冲区分配回收成本较高,但读写性能高;不受JVM内存回收管理 文件读写过程 java不具备磁盘…

解决The‘Access-Control-Allow-Origin‘ header contains multiple values‘*, ....‘, but only one is allowed

报错内容: Access to XMLHttpRequest at ‘http://www.z…n.com/api/login’ from origin ‘http://z…n.com’ has been blocked by CORS policy: The ‘Access-Control-Allow-Origin’ header contains multiple values ‘*, http://z…n.com’, but only one is …

C++中std::allocator的使用

标准库中包含一个名为allocator的类,允许我们将分配和初始化分离。使用allocator通常会提供更好的性能和更灵活的内存管理能力。 new有一些灵活性上的局限,其中一方面表现在它将内存分配和对象构造组合在了一起。类似的,delete将对象析构和内…

alloc的流程

1⃣️ 2⃣️ 3⃣️ 现在我们看的objc源码都是2.0的版本,之前还有一个1.0的版本 4⃣️ 5⃣️核心方法 最主要的就是最下面三个方法 他的最重要作用就是开辟内存 cls->instanceSize 先计算出需要的内存空间大小这个大小只和对象的成员变量有关 在没有成员变量…

ByteBuffer.allocate()与allocateDirect()的区别

allocate()产生的是HeapByteBuffer的实例, 本质上是一个no direct buffer, allocateDirect()产生的是DirectByteBuffer的实例, 本质是一个direct buffer 主要区别 buffer的创建方式不同, no direct buffer还可以通过封装已存在的byte array来产生执行IO操作时不同, no direct …

ByteBuffer常用方法与分析

目录 目标 常用API 工具方法 演示案例 allocate(int capacity)和allocateDirect(int capacity) put()和get() flip()和hasRemaining() clear() compact() wrap() 总结 目标 掌握ByteBuffer常用方法,分析ByteBuffer对象在切换读写模式的情况下基本属性的变…

allocate与allocateDirect的性能测试

allocate与allocateDirect的性能测试 测试工具JMH测试代码JMH结果结论 测试工具JMH java基准测试框架 测试代码 直接分配系统内存(allocateDirect) -测试申请内存性能JVM堆分配内存(allocate)-测试申请内存性能直接内存-操作-连续二十次添加(allocateDirect)-测试内存操作性能…

ByteBuffer.allocate()与ByteBuffer.allocateDirect()方法的区别

在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式: public static ByteBuffer allocate(int capacity) public s…

8、ByteBuffer(方法演示2(allocate堆内存和allocateDirect直接内存))

ByteBuffer(方法演示2(allocate堆内存和allocateDirect直接内存)) Allocate:java堆内存:读写效率低,收到gc的影响(因为我们的java对象也是存在堆内存的) !!…

03 Java NIO allocateDirect()和allocate()区别

03 Java NIO allocateDirect和allocate区别 allocateDirect()和allocate()区别直接与非直接缓冲区直接与非直接缓冲区 源码分析 allocateDirect()和allocate()区别 allocateDirect:分配直接缓冲区,将缓冲区简历在物理内存中,可以提交效率 all…

ByteBuffer.allocate()与ByteBuffer.allocateDirect()方法的区别。

在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式: public static ByteBuffer allocate(int capacity) public …

ByteBuffer中的allocate和allocateDirect

1、区别 allocate方法创建的内存在jvm的管理范围,而allocateDirect方法创建的内存不由jvm管理,意思就是allocateDirect创建的内存由系统直接管理 2、释放 allocateDirect创建的内存不归jvm管理,那如何释放呢?虽然这块内存不属于…

NIO ByteBuffer的allocate与allocateDirect区别(HeapByteBuffer与DirectByteBuffer的区别)

参考:https://blog.csdn.net/zhxdick/article/details/81084672 其中allocateDirect分配的字节缓冲区用中文叫做直接缓冲区(DirectByteBuffer),用allocate分配的ByteBuffer叫做堆字节缓冲区(HeapByteBuffer).. 其实根据类名就可…

【系统分析师】论文

文章目录 一、论文框架二、相关素材概览2.1 常见开发模型2.2 SOA架构 三、注意事项3.1 岗位职责3.2 项目背景3.3 理论部分讨论3.4 主体内容3.5 结论部分 四、范文4.1 开发模型主题反例正例 4.2 需求获取技术反例正例 4.3 系统测试反例正例 4.4反例正例 一、论文框架 二、相关素…