前端面试 -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/ 项目地址可能是非常理想的证明方 ...
随机推荐
- 转:红黑树和AVL树(平衡二叉树)区别
本文转载至链接:https://blog.csdn.net/u010899985/article/details/80981053 一.AVL树(平衡二叉树) (1)简介 AVL树是带有平衡条件的二叉 ...
- 怎么创建maven项目
1.Eclipse中用Maven创建项目 2.点击[next] 3.选maven-archetype-webapp后,next 4.填写相应的信息,Packaged是默认创建一个包,不写也可以 4右击 ...
- mybatis-03-一对多关系映射(附源码)
sb_mybatis /* Navicat MySQL Data Transfer Source Server : 阿里云 Source Server Version : 50724 Source H ...
- XUtils 开发框架
xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词) ...
- android.content.res.Resources$NotFoundException: String resource ID #0x0报错
报错:android.content.res.Resources$NotFoundException: String resource ID #0x0 原因:在setText()中使用了int型的参数 ...
- SQList基础+ListView基本使用
今日所学: SQList基础语法 SDList下载地址 SQLite Download Page SQList安装教程SQLite的安装与基本操作 - 极客开发者-博客 ListView用法 没遇到什 ...
- js手机号隐藏中间四位
var tel = "13122223333"; var reg = /^(\d{3})\d{4}(\d{4})$/; tel = tel.replace(reg, "$ ...
- 微信小程序页面跳转参数传递
可以使用标签直接传递 <navigator class="gotoDetail" target="self" url="../detail/de ...
- Make-learning
Make学习笔记 make是工具,Makefile是指导make工作的文件,而CMake则是生成Makefile的工具 要点: 终极目标是Makefile里面的第一个规则目标 目标下面的命令必须接的是 ...
- Java对象和多态
Java对象和多态 (面向对象) 面向对象基础 面向对象程序设计(Object Oriented Programming) 对象基于类创建,类相当于一个模板,对象就是根据模板创建出来的实体(就像做月饼 ...