Http基础知识整理

五层网络模型

目前需要记得的就是
在这里插入图片描述

HTTP/0.9 只有GET ,服务器发送完毕,就关闭TCP连接
HTTP/1.0 加了命令,加了status code和header
HTTP/1.1 长连接(TCP链接不关闭) 管道机制:最多可同时发送6个请求(有序处理) Response Headers 中的Connection值是“keep-alive” 时即为长连接
HTTP2 二进制传输,无序多请求,压缩 信道复用

TCP三次握手,原因:为什么连接建立需要三次握手,而不是两次握手?
防止失效的连接请求报文段被服务端接收,从而产生错误。PS:失效的连接请求:若客户端向服务端发送的连接请求丢失,客户端等待应答超时后就会再次发送连接请求,此时,上一个连接请求就是『失效的』。

URI/Uniform Resource Identifier统一资源标志符,标识互联网上的某些资源
URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。URL是URI概念的一种实现方式(访问方式)。
可理解URI为身份证号,URL为身份证住址+姓名
URN:永久统一资源定位符,资源移动后被找到,目前没有成熟的使用方案

在这里插入图片描述
HTTP方法:GET POST…
HTTP请求码在这里插入图片描述
跨域
什么是跨域?
一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
在这里插入图片描述
三、非同源限制
【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB

【2】无法接触非同源网页的 DOM

【3】无法向非同源地址发送 AJAX 请求

跨域方法:1.JSONP img\link\script标签2.CORS 3.Nginx (engine x)

Http协议中的缓存(Cache-Control)
可缓存性:
Expires:缓存过期时间(HTTP1.0)
缺点:生成的是绝对时间,但是客户端时间可以随意修改,会导致误差。

Cache-Control :HTTP1.1,优先级高于Expires

HTTP/1.1,Expire已经被Cache-Control替代,原因在于Expires控制缓存的原理是使用客户端的时间与服务端返回的时间做对比,那么如果客户端与服务端的时间因为某些原因(例如时区不同;客户端和服务端有一方的时间不准确)发生误差

可设置参数:
1.public:客户端和代理服务器都可缓存
2.private: 客户端可以缓存
3.no-cache: 需要使用协商缓存来验证缓存数据(后面介绍)
4.no-store: 所有内容都不会缓存,强制缓存,对比缓存都不会触发
到期: max-age=xxx: 缓存的内容将在 xxx 秒后失效
重新验证:must-revalidate:过期了,要重新验证

强制缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

协商缓存
协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程
分304跟200的情况
在这里插入图片描述
在这里插入图片描述
强制缓存优先于协商缓存进行,若强制缓存(Expires和Cache-Control)生效则直接使用缓存,若不生效则进行协商缓存(Last-Modified / If-Modified-Since和Etag / If-None-Match)

Cookie
4kb 由HTTP服务器用过set-Cookie设置存在浏览器,用户访问其他也面试,会在同域HTTP请求中附上Cookie

常用场景:账号密码,身份认证

Session
储存在服务器中
在HTTP协议之上,通过Cookie实现了持久的会话。这个会话便称为Session。
session ID存放在cookie中,以后收到有这个sessionID,执行业务

HTTP 数据协商(内容协商)
在HTTP协议中,内容协商是这样一种机制,通过为同一URL指向的资源提供不同的展现形式,可以使用户代理选择与用户需求相适应的最佳匹配(例如: 文档使用的自然语言,图片的格式,或则内容编码形式

HTTP CSP
为什么:阻止跨域脚本攻击 XSS
能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本

这就是"网页安全政策"(Content Security Policy,缩写 CSP)的来历。

HTTPS “安全的HTTP”
HTTPS有如下特点:

1.内容加密:采用混合加密技术,中间者无法直接查看明文内容
2.验证身份:通过证书认证客户端访问的是自己的服务器
3.保护数据完整性:防止传输的内容被中间人冒充或者篡改

1、https收费,协议需要到ca申请证书。
  2、http明文传输,https则是具有安全性的ssl加密传输协议
  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
在这里插入图片描述

1、生命周期:
localStorage:localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。

sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,**sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。**但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。
2、存储大小:5MB
3、存储位置:客户端。
4、存储内容类型:只能存储字符串类型
5、获取方式:
localStorage:window.localStorage;
sessionStorage:window.sessionStorage;。
6、应用场景:
localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。
sessionStorage:敏感账号一次性登录;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值