http协议学习|青训营笔记

85 阅读2分钟

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

http协议学习|青训营笔记

初识HTTP

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

工作原理

HTTP 协议工作于客户端-服务端架构上。

浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。

Web 服务器有:Apache 服务器,IIS 服务器(Internet Information Services)等。

Web 服务器根据接收到的请求后,向客户端发送响应信息。

协议分析

报文

请求

请求方法:GET,POST,PUT等

QQ截图20230120231527.jpg 请求目标:通常是一个url,或者是协议,端口和绝对路径。

状态码:

100-199:信息响应。

200-299:成功响应。

300-399:重定向消息。

400-499:客户端错误响应。

500-599:服务端错误响应。

常用请求头

QQ截图20230120231604.jpg

常用响应头

QQ截图20230120231650.jpg

缓存

QQ截图20230120231722.jpg

cookie

发展

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

帧:HTTP/2通讯的最小单位,每个帧包含帧头,至少标识出当前帧所属的数据流。

消息:与逻辑请求或响应消息对应完整的一系列帧 数据流:已建立的连接内的双向字节流,可以承载一条或多条信息。

HTTP/2连接是永久的,而且仅需要每个来源一个链接。

流控制:组织发送方向接收方发送大量数据的机制。

HTTPS概述:

Hyper Text Transfer Protocol Secure (HTTPS)

经过TSL/SSL加密

应用场景分析

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

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

发起http协议

浏览器:

Ajax之xhr对象 (XMLHttpRequest)

  • xhr.readystate 表示请求的状态。

    Ajax之fetch

  • XMLHttpRequest的升级版
  • 使用Promise
  • 模块化设计
  • 通过数据流处理对象,支持分块读取
  • node:

    标准库:HTTP/HTTPS

  • 默认模块,无需安装其他依赖
  • 功能有限,不是很友好
  • 常用请求库:axios

  • 支持浏览器,nodejs环境
  • 丰富的拦截器
  • 用户体验:

    网络优化

    稳定性

    个人总结

    今日对http协议相关知识及应用进行了学习,认识到了http以及https协议在网络中的重要地位。