HTTP实用指南 | 青训营笔记

78 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

初步认识HTTP

什么是HTTP

  • Hyper Text Transfer Protocol,即超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求响应
  • 简单可扩展
  • 无状态

协议分析

报文

Method

  • GET 请求一个指定资源的表示形式
  • POST 用于将实体提交到指定的资源
  • PUT 用请求有效载荷替换目标的所有当前表示
  • DELETE 删除指定的资源
  • HEAD 请求一个与GET请求的响应相同的响应
  • CONNECT 建立一个到由目标资源标识的服务器的隧道
  • OPTIONS 用于描述目标资源的通信选项
  • TRACE 沿着到目标资源的路径执行一个消息环回测试
  • PATCH 用于对资源应用部分修改

状态码

1661429855382.png

缓存

1661429943858.png

发展

HTTP/2:更快、更稳定、更简单

  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制

HTTPS : Hypertext TransferProtocol Secure

经过TSL/SSL加密

对称加密︰ 加密和解密都是使用同一个密钥

非对称加密,加密和解密需要使用两个不同的密钥︰公钥(public key)和私钥(private key)

场景分析

静态资源

静态资源方案:缓存 + CDN + 文件名hash

CDN : Content Delivery Network

通过用户就近性和服务器负载的判断,CDN确保内容以—种极为高效的方式为用户的请求提供服务

跨域

浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。

解决跨域问题:

CORS ( Cross- Origin Resource Sharing ):整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信