学习记录——Http协议(三)

一、学习总结

明天的机会是复习php,Http协议还有两天的量,留到清明放假的3天去完成。

  • 第十五章:海纳百川:HTTP的实体数据
    • 数据类型与编码,常用的数据类型:text/html、image/gif、image/jpeg、 image/png、audio/mpeg、 video/mp4、application/json,application/javascript、 application/pdf、application/octet-stream。之前同事还问我如果限制pdf类型的文件上传,看来还是有这个类型的,当时没想到。压缩类型:gzip、deflate、br
    • 数据类型使用的头字段, Accept来表示数据类型 Accept-Encoding 表示压缩格式
    • 语言类型与编码,Accept-Charset Accept-Language :zh-CN,zh,en。返回头Content-Type Content_Language:zh-CN
    • 内容协商的质量值,Accept: text/html,application/xml;q=0.9,*/*;q=0.8
    • 内容协商的结果,Vary: Accept-Encoding,User-Agent,Accept
  • 第十六章:把大象装进冰箱:HTTP传输大文件的 方法
    • 数据压缩,压缩数据可以减少带宽压力
    • 分块传输,Transfer-Encoding: chunked
    • 范围请求,AcceptRanges: bytes bytes=x-y。如果正常返回 状态码是206 Partial Content”.如果超出范围状态码是416 。返回头字段 Content-Range:bytes x-y/length。示例如下
    • 多段数据,支持多分段数据multipart/byteranges “boundary=xxx表示分隔
    • GET /16-2 HTTP/1.1
      Host: www.chrono.com
      Range: bytes=0-31
      HTTP/1.1 206 Partial Content
      Content-Length: 32
      Accept-Ranges: bytes
      Content-Range: bytes 0-31/96
      // this is a plain text json doc

       

  •  第十七章:排队也要讲效率:HTTP的连接管理
    • 短连接,收到响应报文后会立即关闭连接。TCP 建立连接要有“三 次握手”,发送 3 个数据包,需要 1 个 RTT;关闭连接 是“四次挥手”,4 个数据包需要 2 个 RTT。
    • 长连接,节省了多次 TCP建立连接和关闭的时间。HTTP/1.1 中的连接都会默认启用长连接。
    • 连接相关的头字段,Connection:keep-alive
    • 队头阻塞,问题会导致性能下降。
    • 性能优化,增加并发或者域名分片
  •  第十八章:四通八达:HTTP的重定向和跳转
    • 重定向的过程。“Location”字段属于响应字段,必须出现在响应报文 里。但只有配合 301/302 状态码才有意义,它标记了服务 器要求重定向的 URI
    • 重定向状态码。301俗称“永久重定向” 302是“临时重定向”。
    • 重定向的应用场景。一个最常见的原因就是“资源不可用”,需要用另一个新的 URI 来代替。另一个原因就是“避免重复”,让多个网址都跳转到一个 URI,增加访问入口的同时还不会增加额外的工作量。
    • 重定向的相关问题。第一个问题是“性能损耗”。第二个问题是“循环跳转”。
  • 第十九章:让我知道你是谁:HTTP的Cookie机制
    • Cookie 是服务器委托浏览器存储的一些数据,让服务器有了“记忆能力”
    • 响应报文使用 Set-Cookie 字段发送“key=value”形式的 Cookie 值
    • 请求报文里用 Cookie 字段发送多个 Cookie 值
    • 为了保护 Cookie,还要给它设置有效期、作用域等属性,常用的有 Max-Age、 Expires、Domain、HttpOnly 等
    • Cookie 最基本的用途是身份识别,实现有状态的会话事务。 
  • 第二十章:生鲜速递:HTTP的缓存控制
    • 缓存是优化系统性能的重要手段,HTTP 传输的每一个环节中都可以有缓存
    • 服务器使用“Cache-Control”设置缓存策略,常用的是“max-age”,表示资源的有 效期
    • 浏览器收到数据就会存入缓存,如果没过期就可以直接使用,过期就要去服务器验证是 否仍然可用
    • 验证资源是否失效需要使用“条件请求”,常用的是“if-Modified-Since”和“IfNone-Match”,收到 304 就可以复用缓存里的资源
    • 验证资源是否被修改的条件有两个:“Last-modified”和“ETag”,需要服务器预先 在响应报文里设置,搭配条件请求使用
    • 浏览器也可以发送“Cache-Control”字段,使用“max-age=0”或“no_cache”刷 新数据。 
  • 第二十一章:良心中间商:HTTP的代理服务
    • HTTP 代理就是客户端和服务器通信链路中的一个中间环节,为两端提供“代理服 务”
    • 代理处于中间层,为 HTTP 处理增加了更多的灵活性,可以实现负载均衡、安全防护、 数据过滤等功能
    • 代理服务器需要使用字段“Via”标记自己的身份,多个代理会形成一个列表
    • 如果想要知道客户端的真实 IP 地址,可以使用字段“X-Forwarded-For”和“X-RealIP”
    • 专门的“代理协议”可以在不改动原始报文的情况下传递客户端的真 
  • 第二十二章:冷链周转:HTTP的缓存代理
    • 计算机领域里最常用的性能优化手段是“时空转换”,也就是“时间换空间”或者“空 间换时间”,HTTP 缓存属于后者
    • 缓存代理是增加了缓存功能的代理服务,缓存源服务器的数据,分发给下游的客户端
    • “Cache-Control”字段也可以控制缓存代理,常用的有“private”“smaxage”“no-transform”等,同样必须配合“Last-modified”“ETag”等字段才 能使用
    • 缓存代理有时候也会带来负面影响,缓存不良数据,需要及时刷新或删除。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值