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则不缓存。

  1. Expires。有了Pragma来禁用缓存,自然也需要有个东西来启用缓存和定义缓存时间。如果Pragma头部和Expires头部同时存在,则起作用的会是Pragma。,响应报文中Expires所定义的缓存时间是相对服务器上的时间而言的,其定义的是资源“失效时刻”,如果客户端上的时间跟服务器上的时间不一致(特别是用户修改了自己电脑的系统时间),那缓存时间可能就没啥意义了。

HTTP1.1 缓存字段详解

  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

  1. 服务器向客户端发送公钥和证书
  2. 客户端校验证书,并生成密码,用公钥加密
  3. 服务端解析到密码后,以后的东西都用这个密码

想`

http2

  1. 多路复用 允许同时多个请求,http1.1对于同一个域名同时只能有2-8个请求

websocket

是一个基于tcp的网络协议,实现了服务端与客户端的互相通讯,服务器可以主动向客户端通讯

xss

跨站脚本攻击是指服务端未对用户输入做验证
使得HTML直接执行用户输入的恶意脚本

csrf

伪造用户请求,比如访问a网站之后,用户访问了恶意的b网站,b网站回向a网站发送恶意请求

避免使用get进行敏感操作
使用token令牌


cppprimer
180 声望5 粉丝