[ HTTP 使用指南 | 青训营笔记]

74 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第5天

HTTP使用指南

1. 初识

1.1 什么是HTTP

  • Hyper Text Transfer Protocol 超文本传输协议
  • 应用层协议,基于TCP 协议
  • 请求响应
  • 简单可扩展
  • 无状态(没有记忆能力,每个请求都是独立的)

1.2 基本特点

TCP协议的特点:

  • 面向连接
  • 点对点(一对一)
  • 可靠支付
  • 面向字节流,也就是说仅仅把上层协议传递过来的数据当成字节传输。

为了实现TCP上述的特点,TCP协议需要解决的是面向连接(建立连接2和关闭连接的方式)、可靠传输(错误确认和重传)、流量控制(发送方和接收方的传输速率协调)、拥塞控制四个方面.

2. 协议分析

2.1 持续发展

image.png

HTTP/1.1 1997年,HTTP/2 2015年,在16年中68%的请求都是HTTP/2

2.2 报文

以HTTP/1.1 为例

image.png

Method

image.png

  • Safe(安全的):不会修改服务器的数据的方法,例如:GET、HEAD、OPTIONS
  • Idempotent(幂等):同样的请求被执行一次与连续执行多次效果是一样的,服务器的状态也是一样的,所有的safe的方法都是Idmpotent的,例如:GET、HEAD、OPTIONS、PUT、DELETE

状态码

image.png

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

RESTFUL API

一种API设计风格;REST-Representational State Transfer

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

image.png

常用请求头

image.png

常用响应头

image.png

缓存

强缓存

  • Expires,时间戳
  • Cache-Control
    • 可缓存性
      • no-cache:协商缓存验证
      • no-store:不使用任何缓存
    • 到期
      • max-age:单位是秒,存储的最大周期,相对于请求的时间
    • 重新验证*重新加载
      • must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用

协商缓存

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

image.png

cookie

Set-Cookie-response

image.png

2.3 发展

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

image.png

image.png

image.png image.png

image.png

image.png

  • 二进制
  • 交错发送,接收方重组织
  • 服务器推送

HTTPS概述

  • HTTPS:Hypertext Transfer Protocol Secure

  • 经过TS/SSL加密

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

  • 非对称加密,加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key) image.png 对比

image.png

3. 总结

这是年前的最后一次课,理论知识有很多,掌握协议的知识,了解内部的传输数据,案例是最能实践的,以上主要为基础知识,还是要多加练习使用