资讯专栏INFORMATION COLUMN

都得懂点http

ghnor / 2232人阅读

摘要:临时性重定向该状态码表示请求的资源已被分配了新的,希望用户本次请求能使用新的。该状态码表示发送的请求需要有通过认证认证认证的认证信息。该状态码表明服务器端在执行请求时发生了错误。

前言

最近在看nodejs,发现需要很多http相关的知识,就去找了本「图解HTTP」看,
记录下自己觉得比较重要的知识点

URI格式
http:// user:passwd @www.cheesekun.top :80 /dir/index.html ?uid=1 #ch1
协议方案名 登录信息 服务器地址 服务器端口 文件路径 查询字符串 片段标识符
http首部字段

由于字段类别很多,只挑选了一些打开网页常见的字段

General(通用首部字段)

请求报文和相应报文都会使用的首部

首部字段名 说明 某参数 作用
Connection 逐跳首部,连接的管理 keep-alive 客户端与服务器进行持久连接,可用参数close断开
Request(请求首部字段)

从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容,客户端信息,响应内容相关优先级等信息

首部字段名 说明 参数 作用
Accept 用户代理可处理相对优先级的媒体类型 text/html,application/xhtml+xml,image/webp,/;q=0.8 优先采用text和html格式,q为优先权重值
Accept-Encoding 优先的内容编码 gzip,deflate,sdch 支持gzip等内容编码及其优先级
Accept-Language 优先的语言(自然语言) zh-CN,zh;q=0.8,en-us,en; 优先中文
Content-Length 实体主题的大小(单位:字节)
Host 请求资源所在的服务器
Referer 对请求中URI的原始获取方 https://www.google.com 该页面是在google链接而来
User-Agent HTTP客户端程序的信息
X-Request-With 客户端的请求是Ajax请求还是其他请求
Response(响应首部字段)

从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息

首部字段名 说明 某参数 作用
Accept-Ranges 是否接受字节范围请求
Content-Type 实现主体的媒体类型
Date 创建报文的日期时间
ETag 资源的匹配信息 "一串字符" 标识所有资源
Expires 实体主体过期的日期时间 一个日期 缓存超过该日期会从源服务器获取资源
Location 转移URI指向 一个URI 配合3xx,重定向提示转移URI路径
Last-Modified 资源的最后修改日期时间
Pragma 报文指令 no-cache 兼容http1.0,http1.1使用Cache-Conrol:no-cache,表示不接收缓存
Transfer-Encoding 指定报文主体的传输编码方式 chunked(分块) 分块传输编码
Vary 代理服务器缓存的管理 Accept-Language 从代理服务器拿取A-L的缓存,若无,则从源服务器拿
Enitity(实体首部字段)

针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息

HTTP状态码

状态码告知从服务器端返回的请求结果

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

200 OK:表示客户端的请求被服务器成功处理

204 No Content:该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。

206 Partial Content:该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range 指定范围的实体内容。

3XX 重定向

3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

301 Moved Permanently:永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。

302 Found:临时性重定向:该状态码表示请求的资源已被分配了新的URI,希望用户本次请求能使用新的URI。302和301很相似,302表示的URI并不是永久性移动,换句话说就是URI还有可能发生变化。

303 See Other:该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。303和302有着相似的功能,他们之间的区别是303状态码表示明确客户端采用GET请求获取资源

304 Not Modified:该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主题部分。跟重定向没有关系。

4XX客户端错误

4XX响应结果表示错误发生在客户端

400 Bad Request:该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。

401 Unauthorized:该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。

403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。

404 Not Found:该状态码表明服务器上无法找到请求的资源。

5XX服务器错误

5XX 的响应结果表明服务器本身发生错误。

500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。

503 Service Unavailable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

结语

挺好的一本书,172张图片也特别帮助理解。
原文:cheesekun.top

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/112037.html

相关文章

  • 都得懂点http

    摘要:临时性重定向该状态码表示请求的资源已被分配了新的,希望用户本次请求能使用新的。该状态码表示发送的请求需要有通过认证认证认证的认证信息。该状态码表明服务器端在执行请求时发生了错误。 前言 最近在看nodejs,发现需要很多http相关的知识,就去找了本「图解HTTP」看,记录下自己觉得比较重要的知识点 URI格式 http:// user:passwd @www.cheesekun....

    hearaway 评论0 收藏0
  • 都得懂点http

    摘要:临时性重定向该状态码表示请求的资源已被分配了新的,希望用户本次请求能使用新的。该状态码表示发送的请求需要有通过认证认证认证的认证信息。该状态码表明服务器端在执行请求时发生了错误。 前言 最近在看nodejs,发现需要很多http相关的知识,就去找了本「图解HTTP」看,记录下自己觉得比较重要的知识点 URI格式 http:// user:passwd @www.cheesekun....

    bingchen 评论0 收藏0
  • 学习Python,怎能不懂点PEP呢?

    摘要:或许你是一个初入门的小白,完全不知道是什么。到目前为止,它拥有个兄弟姐妹。此外,关于对的贡献,还有一种很有效的方式,就是将翻译成中文,造福国内的学习社区。 或许你是一个初入门Python的小白,完全不知道PEP是什么。又或许你是个学会了Python的熟手,见过几个PEP,却不知道这玩意背后是什么。那正好,本文将系统性地介绍一下PEP,与大家一起加深对PEP的了解。 目前,国内各类教程不...

    hzx 评论0 收藏0
  • 学习Python,怎能不懂点PEP呢?

    摘要:或许你是一个初入门的小白,完全不知道是什么。到目前为止,它拥有个兄弟姐妹。此外,关于对的贡献,还有一种很有效的方式,就是将翻译成中文,造福国内的学习社区。 或许你是一个初入门Python的小白,完全不知道PEP是什么。又或许你是个学会了Python的熟手,见过几个PEP,却不知道这玩意背后是什么。那正好,本文将系统性地介绍一下PEP,与大家一起加深对PEP的了解。 目前,国内各类教程不...

    Magicer 评论0 收藏0
  • Promise之你看得懂的Promise

    摘要:存放成功回调的函数存放失败回调的函数监听回调函数然后是需要多加一个状态判断,当中是异步操作时,需要在我们之前定义的回调函数数组中添加一个回调函数。参数函数返回的对象,函数的返回值,最外层的上的和。 本文由作者陈旭锋(任职网易考拉)授权网易云社区发布。 Promise源码详解学习知识要善于思考,思考,再思考。 —— 爱因斯坦 1.回调地狱曾几何时,我们的代码是这样的,为了拿到回调的结果,...

    wwolf 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<