《图解HTTP》摘记

来源:互联网 发布:大型系统网络拓扑图 编辑:程序博客网 时间:2024/06/06 02:05

http资料整理

了解web及网络基础

1.7 URI和URL

  • URI:Uniform Resource Identifier,同一资源标识符,表示某一互联网资源
  • URL:表示资源的地点,URL是URI的子集

URI格式:

http://user:pass@www.example.com:80/index.php/home/index/index.html?uid=1#ch1

  • http:协议
  • user:pass:登录信息(认证)
  • www.example.com:服务器地址,在CDN处转换成ip形式
  • 80:服务器端口号
  • index.php/index/index.html:带层次的文件路径,不一定是真实的文件路径
  • ?uid=1:传递参数
  • #ch1:网页的锚点

简单HTTP协议

2.5 告知服务器意图的HTTP方法

  • GET
  • POST
  • PUT:用来传输文件,但是由于本身不对文件进行验证,需要人为编写程序进行验证,所以用情况比较少
  • HEAD:与GET一样,只是不需要服务器返回报文主体
  • DELETE
  • OPTIONS:询问服务器支持的HTTP方法
  • TRACE:追踪经过的代理服务器,一般服务器不开放该方法
  • CONNECT:要求用隧道协议(SSL和TLS)连接代理

HTTP报文内的HTTP信息

3.2 请求报文及响应报文的结构

请求报文

  • 报文首部
  • 空行(CR+LF)
  • 报文主体

响应报文

  • 报文首部
  • 空行(CR+LF)
  • 报文主体

请求报文首部

  • 请求行
  • 请求首部字段
  • 通用首部字段
  • 实体首部字段
  • 其他

响应报文首部

  • 状态行
  • 响应首部字段
  • 通用首部字段
  • 实体首部字段
  • 其他

表1 通用首部字段

首部字段名 说明 Cache-Control Connection Date Pragma 报文指令 Tailer 报文末端的首部一览 Transfer-Encoding 指定报文主体的传输编码方式 Upgrade 升级为其他协议 Via 代理服务器的相关信息 Warning

表2 请求首部字段

首部字段名 说明 Accept 用户代理可以处理的媒体类型 Accept-Charset Accept-Encoding Accept-Language Authorization Web认证信息 Expect 期待服务器的特定行为 From 用户的电子邮箱地址 Host 请求资源所在的服务器 If-Match 比较实体标记(ETag) If-Modified-Since 比较资源的更新时间 If-None-Match 比较实体标记 If-Range 资源未更新时发送实体Byte的范围请求 If-Unmodified-Since 比较资源的更新时间 Max-Forwards 最大经过的代理服务器数量 Proxy-Authorization 代理服务器要求客户端的认证信息 Range 实体的字节范围请求 Referer 对请求中URI的原始获取方,就是该请求发往的目的地 TE 传输编码的优先级 User-Agent HTTP客户端程序的信息

表3 响应首部字段

首部字段名 说明 Accept-Ranges 是否接受字节范围请求 Age 推算资源创建经过的时间,就是资源的存在时间 ETag 资源的匹配信息 Location 令客户端重定向至指定URI Proxy-Authenticate 代理服务器对客户端的认证信息 Retry-After 对再次发起请求的时机要求 Server HTTP服务器的安装信息 Vary 代理服务器缓存的管理信息 WWW-Authenticate 服务器对客户端的认证信息

表4 实体首部字段

|首部字段名|说明|
|Allow|资源可支持的HTTP方法|
|Content-Encoding||
|Content-Language||
|Content-Length||
|Content-Location||
|Content-MD5||
|Content-Range||
|Content-Type||
|Expires||
|Last-Modified||

别的首部信息

  • End-to-end首部

分在此类别中的首部会转发给请求/响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。

  • Hop-by-hop首部

分在此类别中的首部只对单次转发有效,会因为通过缓存或代理而不再转发。

Hop-by-hop首部列表

  • Connection
  • keep-Alive
  • Proxy-Authenticate
  • Proxy-Authenzation
  • Trailer
  • TE
  • Transfer-Encoding
  • Upgrade

3.3 编码提升传输速率

3.3.2 压缩传输的内容编码

常用的内容编码有以下几种:

  • gzip
  • compress(UNIX系统的标准压缩)
  • deflate
  • identify(不进行编码)

3.4 发送多种数据的多部分对象集合

采用MIME机制,使HTTP的表单能传输多类型实体。

多部分对象集合包含的对象如下:

  • multipart/form-data

在web文件表单上传时使用

  • multipart/byteranges

使用**boundary=”THIS_STRING_SEPARATES”来进行设置多部分对象集合时进行划分的字符串。

–THIS_STRING_SEPARATES
Content-Type:application/pdf
Content-Range:byte 500-900/8000
–THIS_STRING_SEPARATES
Content-Type:application/pdf
Content-Range:byte 911-1000/8000
–THIS_STRING_SEPARATES–

返回结果的HTTP状态码

类型 原因短语 1xx Informational 2xx Success 3xx Redirection 4xx Client Error 5xx Server Error

200 OK

204 No Content

206 Partial Content

请求资源的其中一部分。

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

根据URI已经找到资源,但是没有符合搜索条件的资源。

307 Temporary Redirect

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

500 Internet Server Error

服务器程序故障。

503 Service Unavailable

0 0
原创粉丝点击