前端面试 -HTTP系列
http和https 的区别?
| 端口 | 经济 | 安全性 | 响应速度 | |
|---|---|---|---|---|
| http | 80端口 | 不需要 | 明文传输,安全性差 | 页面响应速度快,使用tcp的3次握手 |
| https | 443端口 | 费钱SSL需要ca 证书 | SSL加密 | 慢 还要加ssl的9个包 |
get和post请求区别?
| 请求参数 | 支持刷新 | 是否可被浏览器缓存 | 功能 | |
|---|---|---|---|---|
| get | 放在url里,并且长度受限制(2048字符)安全性较差 | 在浏览器中可直接访问可以刷新回退 | 可以 | 查数据 |
| post | 在请求体body中,长度不受限制 安全性好 | 不能在浏览器中直接访问 | 不能 | 增删改 |
TCP三次握手
- 建立连接时,客户端发送syn 同步序列编号 包(syn=j)到服务器 , 进入SYN_SENT状态
- 服务器收到syn包并发送确认包 ack(j+1) 和自己的syn(y)
- 客户端收到服务器的SYN+ACK包 ,向服务器发送ack确认(y+1)
TCP四次挥手
1.客户端发送FIN 连接释放报文
2.服务器收到FIN并发送确认包ACK
3.服务器发送FIN
4.客户端发送ACK
为什么2.3不合并起来,因为2.3中间有可能还有数据在发送,不能提前发送FIN
HTTP 缓存有哪几种?
两种 协商缓存和强制缓存, 根据是否需要向服务器重新发起HTTP请求 区分
强制缓存: 向浏览器缓存查找该请求结果 通过Cache-Control 和 Expires 决定是否使用缓存。
不存在则重新向服务器发送(像第一次)、存在则使用本地缓存、存在但失效了 协商缓存
协商缓存:向服务器请求结果, 由服务器根据缓存标识 Last-Modified / If-Modified-Since 和 Etag / If-None-Match 决定是否使用缓存的过程 成功304 失败返回200和请求内容
HTTP 状态码知道哪些?分别什么意思?
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
Cookie V.S. LocalStorage V.S. SessionStorage V.S. Session
cookie :一般由服务器返回客户端,报存到客户端,用于存用户登录信息。请求时会在header里,所有不安全。存储大小约5k
session:存在服务器端,用来保存每个用户的专信息。大小不限
webstorage :存在客户端,安全性高 大小为5M左右。
前端面试 -HTTP系列的更多相关文章
- 前端面试 -Vue2系列
vue 1为啥用Vue? 1MVVM 数据的双向绑定 2指令系统 不需要操作DOM 3组件化 2v-show和v-if.v-for v-show 通过 display:none 隐藏元素,DOM还在. ...
- 2019前端面试系列——JS面试题
判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'ob ...
- 2019前端面试系列——Vue面试题
Vue 双向绑定原理 mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter.getter,在数 ...
- 2019前端面试系列——JS高频手写代码题
实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...
- 2019前端面试系列——CSS面试题
盒模型 /* 红色区域的大小是多少?200 - 20*2 - 20*2 = 120 */ .box { width: 200px; height: 200px; padding: 20px; marg ...
- web前端面试试题总结---html篇
HTML Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器 ...
- web前端面试总结
本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的! 前端还是一个 ...
- 【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践
目 录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想,不知大家还记不记得,题 ...
- 问得最多的十个JavaScript前端面试问题
我知道有很多人不同意这种类型的面试.其实不管你喜不喜欢,你都得接受.尤其当你是自学的,而且要申请第一份工作时. 我估计很多有人其它方法来证明他自己,像Github/ 项目地址可能是非常理想的证明方 ...
随机推荐
- Spring配置文件?
Spring配置文件是个XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用.
- 客户端注册 Watcher 实现 ?
1.调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象 2.标记请求 request,封装 Watcher 到 WatchRegistrati ...
- Eclipse创建Spring XML配置文件插件
引用:https://www.cnblogs.com/lideqiang/p/9067219.html 第一步:在 Eclipse Marketplace仓库中,搜索sts 第二步:安装Spring ...
- java后台解决上传图片翻转90的问题,有demo,经过测试可用
1.需要加入 依赖 metadata-extractor.jar 依赖如下 <dependencies> <!-- Extracts Exif, IPTC, XMP, ICC and ...
- Windows常用快捷操作
Windows操作系统作为目前最广泛使用的PC端OS,掌握一些快捷键,方便快速在Windows系统下进行操作. 下面收集整理了一些常用的快捷操作: Ctrl + A 全选 Ctrl + C 复 ...
- 攻防世界 NaNNaNNaNNaN-Batman
NaNNaNNaNNaN-Batman 下载出一个文件我们一开始不知道是个啥,我们拉入到sublime中看一下 我们可以发现在最开始的位置有一个_是一段函数变量,最后的eva()那个是执行函数代码,但 ...
- Simulink仿真时间、步长、精度和解法器设置
在Simulink模型中Configuration Parameters里的Solver页设置仿真时间.步长.精度和解法器. 一.仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时 ...
- 用纯CSS美化radio和checkbox
Radio和checkbox需要美化吗?答案是必须的,因为设计风格一直都会变化,原生的样式百年不变肯定满足不了需求. 先看看纯CSS美化过后的radio和checkbox效果:查看. 项目地址:mag ...
- Java/C++实现装饰模式---模拟手机功能的升级过程
用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人:而JarPhone除了声音还能振动:更高级的手机(ComplexPhone)除了声音.振动外,还 ...
- 【每日日报】第五十三天---安装My SQL
1 2今天安装了My SQL并学习了一些基础的命令 mysql下载及安装教程 2 没有成功安装SQL Server,误删了一些文件 3 明天继续看视频 ------------------------ ...