HTTP有用状态码和字段

3,514 阅读3分钟

HTTP的基本概念

HTTP是超文本传输协议,也就是HyperTextTransferProtocal.HTTP是在计算机世界里专门用于两点之间数据传输的约定和规范

什么是超文本?

HTTP传输的内容是超文本,他不是不同的文本,是文字图片视频等的混合体,关键是有超链接,能从一个超文本跳转到另外一个超文本。

HTML是最常见的超文本,内部用标签定义了图片,视频的链接,经过浏览器的解释,就能给我们展示一个完整的网页了。

总的来说,HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。

HTTP常见状态码

  • 1xx:提示信息,标识目前是协议处理的中间状态,还需要后续的操作
  • 2xx:成功,说明报文已经收到,并且被正确处理了

204:no content,响应头里面没有body数据

206:partial content ,用于HTTP分块下载或断点续传,标识相应返回的body数据并不是资源的全部,而是其中一部分,也是成功的处理

  • 3xx:重定向,资源位置发生了变动,需要客户端重新发送请求。

301:表示永久重定向moved permantly,说明表示请求的资源永久不存在了

302:表示临时重定向,说明请求的资源还在,需要用另外一个URL访问

301,302都会在响应头里面使用Location字段,指明后续跳转的URL,浏览器会自动重定向到新的Url

304:not modified,不具有跳转的含义,表示资源没有被修改,重定向已经存在的缓冲文件,也叫缓冲重定向,告诉客户端可以继续使用缓存资源,用于缓存控制

  • 4xx,客户端错误,请求报文错误,服务端无法处理
  • 5xx:服务器错误

501表示客户端请求的功能不支持,类似即将开业,敬请期待的意思。

502是网关拦截

503表示服务器很忙,暂时无法相应客户端,类似网络很忙,请稍后重试的含义

HTTP的常见字段

HOST

该字段主要是为了区分,同一个ip的服务器下的不同网站,就算计算机底层知道了对方ip,但是不知道这个ip下解析的不同网站服务也不行

Content-Length

这个字段是为了告诉浏览器,本次服务器返回的数据长度。

HTTP是基于TCP传输协议进行通信,而使用TCP传输协议,就会存在一个粘包问题,HTTP协议通过设置回车符,换行符作为HTTPheader的边界,通过Content-Length字段作为HTTPbody的边界,为了解决粘包问题

Connection

Connection用于客户端要求服务器使用HTTP长连接的机制,以便其它请求复用

HTTP长连接的特点是,只要任意一端没有明确剔除断开连接,那么就会保持TCP的链接状态

HTTP 长连接

Connection: Keep-Alive

开启Keep-Alive机制后,连接就不会中断,而是保持连接,当客户端发送另外一个请求的时候,会使用同一个连接,知道客户端或者提出断开连接

Content-Type

这个字段用于服务器回应客户端时候,告诉他自己能接收什么数据格式

image-20230118110938842

Content-Encoding

说明数据的压缩方法,表示服务器返回数据用了什么压缩格式

同时也有Accept-Encoding和它接应

img