这是我参与⌈第四届青训营⌋笔记创作活动的第8天。HTTP【Hyper Text Transfer Protocol(超文本传输协议)】是应用层协议,基于TCP协议,简单可扩展,无状态。用户在浏览器的地址栏中输入字符串,browser进程处理输入信息,浏览器内核向服务器发起请求并读取服务器响应,然后渲染页面。
协议基础
-
发展历程
-
结构与单位分析(报文)
起始行:请求和响应的不同 、HTTP headers、empty line、body
Method取值:
Head: 和get类似,返回的响应中没有具体的内容,用于获取报头 POST: 向服务器提交数据而发送的请求 GET: 向服务器获取资源,比如常见的查询请求 PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新 PATCH:PUT 方法的补充,更新指定资源的部分数据 DELETE:用于删除指定的资源 OPTIONS: 获取服务器支持的HTTP请求方法,服务器性能、跨域检查等 CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本返回给用户,网页开发基本不用这个方法,如果是http代理就会使用这个,让服务器代理用户去访问其他网页, 类似中介 TRACE:回显服务器收到的请求,主要用于测试或诊断状态码
常见:
RESTful API:一种API设计风格,REST【Representational State Transfer】
每一个URL代表一种资源; 客户端和服务器之间传递这种资源的某种表现层 客户端通过HTTP method对服务器端资源进行操作,实现“表现层状态转化”。常用请求头:Accept、Content-Type...常用响应头:Content-Type、Last-Modified、Expires...
具体场景分析: - 缓存 - 强缓存:Expires,时间戳;Cache-Control,可缓存性、到期、重新验证*重新加载 - 协商缓存:Etag/If-None-Match、Last-Modified/If-Modified-Sincecookie:Set-Cookie-response
-
发展
HTTP/2比上一版本传输更快、更稳定、更简单。HTTP/2连接都是永久的,而且仅需要每个来源一个连接。流控制:阻止发送方向接收方发送大量数据的机制。
帧(frame):通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流 消息:与逻辑请求或响应消息对应的完整的一系列帧 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息HTTPS【Hypertext Transfer Protocol Secure】:经过TSL/SSL加密