《图解HTTP》摘记

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
AuthorizationWeb认证信息
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-AgentHTTP客户端程序的信息

表3 响应首部字段

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

类型原因短语
1xxInformational
2xxSuccess
3xxRedirection
4xxClient Error
5xxServer 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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值