HTTP基本内容|青训营笔记

今天的笔记是HTTP

以前总在b站上刷到吐槽HTTP难得视频,但是下学期我也要学计算机网络啦哈哈哈(悲),希望不要像我的计算机组成原理一样啥也不会!!

基础定义

HTTP: 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

协议: 使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。


特点

  1. 应用层协议,基于TCP。
  2. 请求响应 简单可扩展 无状态请求间孤立)

协议分析

method

  • 安全方法:不会修改服务器数据,如get head options.
  • 幂等方法:同样请求执行一次与连续执行多次是一样的,服务器状态也一样,所有安全方法都是幂等的。如get put delete.

常见方法:

状态码

HTTP状态码是表示网页服务器HTTP响应状态的3位数字代码。它由 RFC2616 规范定义的 ,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。

所有状态码的第一个数字代表了响应的五种状态之一.

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

缓存

HTTP 缓存策略分为两种: 强缓存 和 协商缓存 ,这两种缓存策略都是服务端设置 HTTP Header来实现的.

  1. 强缓存:直接从浏览器缓存过的本地进行读取,不会去请求服务器。
  2. 协商缓存:在使用本地的缓存之前,会先向服务器发一个请求,与服务器协商当前浏览器的缓存是否已经过期。协商缓存主要是解决强缓存资源不能及时更新的问题。

RESTful API

(1)每一个URI代表一种资源

(2)客户端和服务器之间,传递这种资源的某种表现层

(3)客户端通过HTTP method对服务器端资源进行操作,实现表现层状态转化

HTTP2

帧:HTTP2通信最小单位,每个帧包含帧头,标识出当前帧所属数据流

特点:二进制;交错发送,接收方重组质; 连接是永久的,阻止发送方发送大量数据.

HTTPS

特点:采用对称加密、非对称加密的方法

  • 对称加密:加密解密使用同一秘钥
  • 非对称加密:加密使用公钥,解密使用私钥

场景分析

可以打开浏览器,通过右键-检查或F12进入控制台,切换到network

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

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

(以优酷官网为例)

查看css

可以自己查看标头,分析浏览器运行

跨域

预请求:获知服务器是否允许该跨源请求

解决跨域问题:CORS/代理服务器/iframe

总结

HTTP课程看了好几次,还去搜了一些讲解的更详细的帖子和视频,怪不得这么多人吐槽真的是内容很多,还是要慢慢学呀!

相关推荐
千慌百风定乾坤16 小时前
Go 语言入门指南:基础语法和常用特性解析(下) | 豆包MarsCode AI刷题
青训营笔记
FOFO16 小时前
青训营笔记 | HTML语义化的案例分析: 粗略地手绘分析juejin.cn首页 | 豆包MarsCode AI 刷题
青训营笔记
滑滑滑2 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬3 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户967136399653 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记
用户52975799354723 天前
字节跳动青训营刷题笔记2| 豆包MarsCode AI刷题
青训营笔记
clearcold4 天前
浅谈对LangChain中Model I/O的见解 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵4 天前
【字节青训营】 Go 进阶语言:并发概述、Goroutine、Channel、协程池 | 豆包MarsCode AI刷题
青训营笔记
用户336901104444 天前
数字分组求和题解 | 豆包MarsCode AI刷题
青训营笔记
dnxb1234 天前
GO语言工程实践课后作业:实现思路、代码以及路径记录 | 豆包MarsCode AI刷题
青训营笔记