目录
常见Http请求头
介绍http2.0
通过什么做到并发请求
http1.1时如何复用tcp连接
Http报文的请求会有几个部分
cookie放哪里,cookie能做的事情和存在的价值
cookie和token都存放在header里面,为什么只劫持前者
cookie和session有哪些方面的区别
从输入URL到页面加载全过程
如何设计一个localStorage,保证数据的实效性
http缓存控制
get和post有什么区别
语义不同(有无副作用,缓存,书签),传参不同,加密方式不同- GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。- GET产生一个TCP数据包;POST产生两个TCP数据包。(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次)对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
https与https的 区别
http:超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议https:基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。> 过程:(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。(5)Web服务器利用自己的私钥解密出会话密钥。(6)Web服务器利用会话密钥加密与客户端之间的通信### tcp3次握手为什么需要三次握手呢?为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误tcp属于哪一层(1 物理层 -> 2 数据链路层 -> 3 网络层(ip)-> 4 传输层(tcp) -> 5 应用层(http))
协商缓存,强缓存
[参考链接,作者:张云龙](
既生Last-Modified何生Etag?
1.一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了,而重新GET;这时,利用Etag能够更加准确的控制缓存,因为Etag是服务器自动生成或者由开发者生成的对应资源在服务器端的唯一标识符。2.某些文件修改非常频繁,比如在秒以下的时间内进行修改,(比方说1s内修改了N次),If-Modified-Since能检查到的粒度是s级的,这种修改无法判断(或者说UNIX记录MTIME只能精确到秒);
3.某些服务器不能精确的得到文件的最后修改时间。
- 配置超长时间的本地缓存 —— 节省带宽,提高性能
- 采用内容摘要作为缓存更新依据 —— 精确的缓存控制
- 静态资源CDN部署 —— 优化网络请求
- 更资源发布路径实现非覆盖式发布 —— 平滑升级介绍下HTTP状态码
403、301、302是什么
缓存相关的HTTP请求头
介绍HTTPS,HTTPS怎么建立安全通道
介绍下数字签名的原理前后端通信使用什么方案
RESTful常用的Method
介绍下跨域
Access-Control-Allow-Origin在服务端哪里配置
csrf跨站攻击怎么解决
前端和后端怎么联调
HTTPS的加密过程介绍
SSL和TLS介绍DNS解析
介绍下浏览器跨域
广义的跨域
1.) 资源跳转: A链接、重定向、表单提交
2.) 资源嵌入: \<link>、\<script>、\<img>、\<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链
3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等浏览器跨域普通跨域请求
只服务端设置Access-Control-Allow-Origin即可
Nodejs中间件代理跨域http-proxy-middleware
jsonp方案需要服务端怎么配合
通过创建一个 script 标签,将 src 设置为目标请求,插入到 dom 中,服务器接受该请求并返回数据,数据通常被包裹在回调钩子中;
jsonp为什么不支持post方法
显然不行,看过支持 post 请求的 script 么?