HTTP使用指南(上)

90 阅读2分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
PS:因为之前学的TypeScript有些地方没有弄懂,正值春节,就先暂时不写笔记,先写HTTP的内容,等再熟悉一些再补上TypeScript。

1.初识HTTP

在浏览器地址栏输入字符串,从地址到画面,之后发生了什么呢?

image.png

初识HTTP

  • 超文本传输协议 Hyper Text Transfei Protocol
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可扩展
  • 无状态,每个请求都是独立的

image.png

2.协议分析

协议的发展历程

image.png 1.1版本使用时间最长,标准化的过程,标准版本的协议

image.png 不同的起始行有不同的信息

Method

image.png Safe(安全的):不会修改服务器数据的方法 Idempotent(幂等):同样的请求被执行一次连续执行多次的效果是一样的,服务器的状态也是一样的。
所有安全的方法都是幂等的。

状态码

  • 200 OK-客户端请求成功
  • 301-资源(网页等)被永久转移到其它URL
  • 302-临时跳转
  • 401Unauthorized-请求未经授权
  • 404-请求资源不存在,可能是输入了错误的URL
  • 500-服务器内部发生了不可预期的错误
  • 504 Gateway Timeout-网关或者代理的服务器无法在规 定的时间内获得想要的响应。

image.png RESTful API
一种API设计风格

  1. 每一个URL代表一种资源
  2. 客户端和服务端之间,传递这种资源的某种表现层
  3. 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转化”

image.png

常用请求头

image.png

HTTP是一个无状态请求,可以利用Cookie,把有权限的主题自动带上

常用响应头

image.png set-cookie可以告诉哪些信息是可以带上的

缓存

协商缓存

  • Etag/lf-None-Match:资源的特定版本的标识符,类似于指纹
  • Last-Modified/If-Modified-Since:最后修改时间 缓存顺序

image.png

cookie

image.png 后续的几个值主要是为了cookie的安全使用

HTTP/2概述

更快、更稳定、更简单
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少会表示出当前帧的所属数据流。二进制传输
消息:与逻辑请求或响应消息对应的完整的一系列帧。 数据流:已建立的链接内的双向字节流,可以承载一条或多条消息。

HTTP/2新特性

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