Traditionally, why has it been better to serve site assets from multiple domains?
Do your best to describe the process from the time you type in a website's URL to it finishing loading on your screen.
What are the differences between Long-Polling, Websockets and Server-Sent Events?
Explain the following request and response
headers:
- Diff. between Expires, Date, Age and If-Modified-...
- Do Not Track
- Cache-Control
- Transfer-Encoding
- ETag
- X-Frame-Options
缓存存储策略
-
Cache-Control
- max-age
- public // 是
- private //表示是否被代理服务器缓存 否
- no-cache
- no-store
缓存过期策略
- Expires
缓存对比策略
- REQ ETags, RESP If-None-Match
- REQ Last-Modified, RESP If-Modified-Since
HTTP1.0 缓存字段详解
1.Pragma。 设置页面是否缓存,为Pragma则缓存,no-cache则不缓存。
- Expires。有了Pragma来禁用缓存,自然也需要有个东西来启用缓存和定义缓存时间。如果Pragma头部和Expires头部同时存在,则起作用的会是Pragma。,响应报文中Expires所定义的缓存时间是相对服务器上的时间而言的,其定义的是资源“失效时刻”,如果客户端上的时间跟服务器上的时间不一致(特别是用户修改了自己电脑的系统时间),那缓存时间可能就没啥意义了。
HTTP1.1 缓存字段详解
- Cache-Control: 定义缓存过期时间。若报文中同时出现了 Expires 和 Cache-Control,则以 Cache-Control 为准。
(1)max-age=600。 表示文件在本地应该缓存,且有效时长是600秒(从发出请求算起)。在接下来600秒内,如果有请求这个资源,浏览器不会发出 HTTP 请求,而是直接使用本地缓存的文件。
(2)no-cache。实际上她是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,==缓存都要向服务器评估缓存响应的有效性==
(3)no-store
响应不被缓存的意思。
Last-Modified / If-Modified-Since
(1)Last-Modified: 标示这个响应资源的最后修改时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。
(2)If-Modified-Since:
当资源过期时(使用Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。若服务端请求资源的最后修改时间较新,则响应资源内容(HTTP 200);若最后修改时间较旧,则响应HTTP 304,告知浏览器继续使用所保存的cache。
Etag/If-None-Match: Etag/If-None-Match也要配合Cache-Control使用。
(1)Etag: web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器觉得)
(2)If-None-Match: 当资源过期时(使用Cache-Control标识的max-age),发现资源具有Etage声明,则再次向web服务器请求时带上头If-None-Match (Etag的值)。服务器与被请求资源的相应校验串进行比对,决定返回200或304。
既生Last-Modified何生Etag?
HTTP1.1中Etag的出现主要是为了解决几个Last-Modified比较难解决的问题:
(1) Last-Modified标注的最后修改只能精确到秒级,如果某些文件在1秒钟以内,被修改多次的话,它将不能准确标注文件的修改时间。
(2) 如果某些文件会被定期生成,当有时内容并没有任何变化,但Last-Modified却改变了,导致文件没法使用缓存。
(3) 有可能存在服务器没有准确获取文件修改时间,或者与代理服务器时间不一致等情形。
Last-Modified与ETag是可以一起使用的,服务器会优先验证ETag,一致的情况下,才会继续比对Last-Modified,最后才决定是否返回304。
What are HTTP methods? List all HTTP methods that you know, and explain them.
HTTP: Status 200 – 服务器成功返回网页
301 永久转移
302 临时转移
304 not modified
400 bad request
401 not auth
403 forbidden
500 内部错误
HTTP: Status 404 – 请求的网页不存在
HTTP: Status 503 – 服务不可用
https
- 服务器向客户端发送公钥和证书
- 客户端校验证书,并生成密码,用公钥加密
- 服务端解析到密码后,以后的东西都用这个密码
想`
http2
- 多路复用 允许同时多个请求,http1.1对于同一个域名同时只能有2-8个请求
websocket
是一个基于tcp的网络协议,实现了服务端与客户端的互相通讯,服务器可以主动向客户端通讯
xss
跨站脚本攻击是指服务端未对用户输入做验证
使得HTML直接执行用户输入的恶意脚本
csrf
伪造用户请求,比如访问a网站之后,用户访问了恶意的b网站,b网站回向a网站发送恶意请求
避免使用get进行敏感操作
使用token令牌
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。