《图解HTTP》笔记(二)HTTP报文、状态码与Web服务器

目录

HTTP报文结构

报文首部

 报文和实体

内容编码

内容协商

状态码

常用14种状态码

所有状态码

单机多域名

通信数据转发三种程序:代理、网关、隧道


HTTP报文结构

请求报文结构

响应报文结构

报文首部

  • 请求行
    包括请求方法、请求URI、HTTP版本
  • 状态行
    包括状态码、原因短语、HTTP版本
  • 首部字段
    请求和响应的各种条件和属性各类首部
  • 其他
    HTTP和RFC中未定义的首部(Cookie等)

 报文和实体

  • 报文(message)是HTTP通信中的基本单位
  • 实体(entity)=实体首部+实体主体

关系:一般报文主体等于实体主体,当进行编码操作时才有区别

内容编码

指明编码格式,保持实体信息原样压缩。

  • gzip
  • compress
  • deflate(zlib)
  • identity(不进行编码)

内容协商

例子:不同语言的页面显示

  • 服务器驱动协商
    由服务器进行内容协商,以请求的首部字段为参考,在服务器端自动处理
  • 客户端驱动协商
    由用户在客户端手动选择
  • 透明协商
    客户端和服务器驱动的结合体

状态码

开头数字类别原因短语
1信息性状态码接受请求正在处理
2成功状态码请求正常处理完毕
3重定向状态码需要进行附加操作以完成请求
4客户端错误状态码服务器无法处理请求
5服务器错误状态码服务器处理请求出错

常用14种状态码

  1. 200 OK:请求已经被正常处理
  2. 204 No Content:成功返回但不含实体的主体部分;浏览器显示页面不会更新
  3. 206 Paritial Content:客户端进行了范围请求,服务器成功执行
  4. 301 Moved Permanently:永久性重定向
  5. 302 Found:临时性重定向
  6. 303 See Other:请求对应的资源存在联络柜一个URL,应该使用GET方法定向获取请求资源
  7. 304 Not Modified:客户端发送带附加条件的请求,服务器允许请求访问资源但未满足附加条件
  8. 307 Temporary Redirect:临时重定向
  9. 400 Bad Request:请求报文中含有语法错误
  10. 401 Unauthorized:需要有验证信息单验证失败
  11. 403 Forbidden:对资源访问但是被服务器拒绝
  12. 404 Not Found:在服务器上无法找到请求的资源
  13. 500 Internal Server Error:服务器执行请求时发生错误
  14. 503 Service Unavailable:服务器暂时处于超负载或停机维护暂时无法处理请求

所有状态码

状态码状态码英文名称中文描述
100Continue继续。客户端应继续其请求
101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
 
200OK请求成功。一般用于GET与POST请求
201Created已创建。成功请求并创建了新的资源
202Accepted已接受。已经接受请求,但未处理完成
203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206Partial Content部分内容。服务器成功处理了部分GET请求
 
300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303See Other查看其它地址。与301类似。使用GET和POST请求查看
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305Use Proxy使用代理。所请求的资源必须通过代理访问
306Unused已经被废弃的HTTP状态码
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向
 
400Bad Request客户端请求的语法错误,服务器无法理解
401Unauthorized请求要求用户的身份认证
402Payment Required保留,将来使用
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405Method Not Allowed客户端请求中的方法被禁止
406Not Acceptable服务器无法根据客户端请求的内容特性完成请求
407Proxy Authentication Required请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408Request Time-out服务器等待客户端发送的请求时间过长,超时
409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息
412Precondition Failed客户端请求信息的先决条件错误
413Request Entity Too Large由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414Request-URI Too Large请求的URI过长(URI通常为网址),服务器无法处理
415Unsupported Media Type服务器无法处理请求附带的媒体格式
416Requested range not satisfiable客户端请求的范围无效
417Expectation Failed服务器无法满足Expect的请求头信息
 
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented服务器不支持请求的功能,无法完成请求
502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求
505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理

单机多域名

虚拟服务器功能,经过DNS解析后IP地址相同

通信数据转发三种程序:代理、网关、隧道

  • 代理
    转发的应用程序
    每次通过代理服务器,会追加写入via信息
  • 网关
    转发其他服务器通信数据的服务器
    也能提供非HTTP协议服务
  • 隧道
    中转功能
    为了更安全的通信,常使用加密手段

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉迷单车的追风少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值