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

相关推荐
CallBack8 个月前
Typora+PicGo+阿里云OSS搭建个人图床,纵享丝滑!
前端·青训营笔记
Taonce1 年前
站在Android开发者的角度认识MQTT - 源码篇
android·青训营笔记
AB_IN1 年前
打开抖音会发生什么 | 青训营
青训营笔记
monster1231 年前
结营感受(go) | 青训营
青训营笔记
翼同学1 年前
实践记录:使用Bcrypt进行密码安全性保护和验证 | 青训营
青训营笔记
hu1hu_1 年前
Git 的正确使用姿势与最佳实践(1) | 青训营
青训营笔记
星曈1 年前
详解前端框架中的设计模式 | 青训营
青训营笔记
tuxiaobei1 年前
文件上传漏洞 Upload-lab 实践(中)| 青训营
青训营笔记
yibao1 年前
高质量编程与性能调优实战 | 青训营
青训营笔记
小金先生SG1 年前
阿里云对象存储OSS使用| 青训营
青训营笔记