浏览器输入url后发生了什么?
redirect–>读取缓存–>DNS域名解析–>建立tcp连接–>发送http请求–>服务端处理请求–>返回响应结果–>关闭tcp连接–>浏览器解析html
URL、URI、URN
- URI:Uniform Resource Identifier 统一资源标志符
- 用于唯一标示互联网上的信息资源
- 包含 URL和URN
- URL:Uniform Resource Locator 统一资源定位器
- URN 永久统一资源符
http2 与 http1.1区别
http2 优势
1. 信道复用
2. 分贞传输
3. server push
http协议的主要特点?
- 无连接
- 无状态
- 简单快速
http报文的组成部分?
- 请求报文
- 请求行、请求头、空行、请求体
- 响应报文
- 状态行、响应头、空行、响应体
http 方法
- GET 获取资源
- POST 传输资源
- PUT 更新资源
- DELETE 删除资源
- HEAD 获取报文首部
http 状态码
- 1xx: 指示信息
- 2xx: 成功
- 200 客户端请求成功
- 3xx: 重定向提示
- 301 所有请求页面已经永久转移到新url(永久重定向)
- 302 所有请求页面临时转移(临时重定向)
- 4xx: 客户端错误
- 400 客户端请求有语法错误
- 401 请求未经授权
- 403 访问被禁止
- 404 请求资源不存在
- 5xx: 服务端错误
- 500 服务端发生错误
- 503 请求未完成,服务器临时过载
什么持久连接?
http 1.1版本后,当使用 Keep-Alive模式(持久连接)时,使客户端到服务端的连接持续有效,它避免了重新新建连接开销。
什么是 管道化?
持久连接非管道化请求
请求1->响应1->请求2->响应2->请求3->响应3
管道化请求
请求1->请求2->请求3->响应1->响应2->响应3
- 管道化机制通过持久化连接完成,仅HTTP/1.1支持此技术
- 只有GET和HEAD请求可以进行管线化
- 服务端必须支持
什么是同源策略?
同源策略限制从一个源加载的文档或脚本如何与另一个源进行交互,它是一个隔离恶意文件的安全机制。
同源是指:协议、域名、端口
前后端如何通信
- ajax
- webSocket
- cors
跨域通信方法
- JSONP
- postMessage
- WebSocket
- CORS
- 首先跨越请求是发送出去了,是在浏览器将响应拦截了。
- 在服务端配置 Access-Control-Allow-Origin 可以解决跨越问题
- 何时触发预请求?
- 请求不为:post、get、head
- 请求包含 header
- Content-type值不是以下几种:text/plain、mutipart/form-data、application/x-www-form-urlencoded
- 不携带cookie
res.writeHead(200,{
"Access-Control-Allow-Origin":"http://localhost:8888",
"Access-Control-Allow-Headers":"*",
"Access-Control-Allow-Methods":"PUT、Delete"
})
错误监控
前端错误分类
- 代码错误
- try…catch;window.onerror
- 资源错误
- Object.onerror
- performance.entries()
- Error事件捕获
资源上报
1. ajax
2. Image
(new Image()).src='address'
欢迎大家关注我的前端仓库,这里有数据结构、常见面试题、框架、书籍等学习总结,有问题也可以在仓库 issues 或 emil: chenorange12@gmail.com