服务器通过什么接收请求?
    响应报文 客户端和服务器端建立连接后通过ip地址找到服务器默认端口80发送请求报文数据 服务器端收到请求后处理结果通过http协议响应客户端

    目前市面上有哪些服务器用来接收请求的软件
    IIS,Apache,tomcat,Nginx???

    浏览器缓存的机制是怎样的?
    为了减少网络传输的损耗以及降低服务器的压力
    把一个已经请求过的资源拷贝一份存储起来,当下次需要该资源时,浏览器会根据缓存机制决定使用缓存资源还是再次向服务器发送请求
    浏览器缓存位置分为四种,其优先级Service Worker,Memory Cache ,Disk Cache ,Push Cache(service worker 注册在指定源和路径下的事件驱动worker 采用js控制关联的页面或网站 拦截并修改访问和资源请求 细粒度的缓存资源 memory cache 内存中的缓存 容量小 读取高效 持续性短 随进程释放 disk cache 硬盘中的缓存 容量大 读取缓慢 持续性强 任何资源都能存储在磁盘中 push cache http2.0内容 缓存时间很短暂 只在会话session中存在 会话结束释放 )只有当这四个缓存位置中的缓存都没有命中时,则会向服务器发起请求

    缓存策略分为强缓存和协商缓存 通过httpheader实现
    浏览器每次在想服务器发起http请求获得资源后 可能会根据不同的情况将资源缓存
    强缓存 当浏览器发起http请求时 会查询缓存位置中释放存在缓存资源并通过缓存标示字段expires或cache-control来验证缓存资源是否过期(Expires 是服务器端在响应请求时用来规定资源的失效时间。 Cache-Control 是服务器端在响应请求时用来规定资源是否需要被浏览器缓存以及缓存的有效时间)当 Expires 与 Cache-Control 同时存在时,Cache-Control 的优先级要高于 Expires)
    若是命中缓存(存在缓存资源并且缓存资源未过期),则浏览器响应 HTTP Status Code 200,并直接使用缓存资源作为返回结果,不需要发起 HTTP 请求;若是存在缓存资源但缓存资源已过期,则进入协商缓存
    协商缓存
    与协商缓存相关的缓存标识字段是 Last-Modified 和 Etag。
    Last-Modified 是服务器端在响应请求时用来说明资源的最后修改时间。与之对应的是 If-Modified-Since 字段,在协商缓存过程中,浏览器发送的 HTTP 请求中 Header 中会带上 If-Modified-Since 字段,值为缓存资源 Last-Modified 属性的值
    当服务器端接收到带有 If-Modified-Since 的请求时,则会将 If-Modified-Since 的值与被请求资源的最后修改时间做对比。如果相同,说明资源没有新的修改,则304重定向,浏览器会继续使用缓存资源;如果最后修改时间比较新,则说明资源被修改过,则响应 200重新加载,并返回最新的资源
    Etag 是服务器端在响应请求时用来说明资源在服务器端的唯一标识。与之对应的是 If-None-Match 字段,在协商缓存过程中,浏览器发送的 HTTP 请求中 Header 中会带上 If-None-Match 字段,值为该缓存资源 Etag 属性的值 当服务器端接收到带有 If-None-Match 的请求时,则会将 If-None-Match 的值与被请求资源的唯一标识做对比。如果相同,说明资源没有新的修改,则响应304,浏览器会继续使用缓存资源;如果不同,则说明资源被修改过,则响应 200,并返回最新的资源 Last-Modified 是 HTTP 1.0 的字段,而 Etag 是 HTTP 1.1 的字段,当 Last-Modified 与 Etag 同时存在时,Etag 的优先级要高于 Last-ModifiedEtag 的出现主要是为了解决 Last-Modified 存在的问题:Last-Modified 标注的最后修改只能精确到秒级,如果某些文件在 1 秒钟以内被修改多次的话,它将不能准确标注文件的最后修改时间;如果本地打开缓存文件,即使没有对文件进行修改,但 Last-Modified 却改变了,导致文件没法使用缓存

    http请求 和 https请求 有什么区别?
    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息为了解决HTTP协议的这一缺陷,需要使用另一种协议:超文本传输安全协HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密,HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
    https协议需要到ca申请证书,一般免费证书很少,需要交费。
    http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。一般意义上的https,就是服务器有一个证书。主要目的是保证服务器就是他声称的服务器。服务端和客户端之间的所有通讯,都是加密的。客户端产生一个对称的密钥,通过服务器的证书来交换密钥,接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为没有密钥,篡改也没有什么意义

    客户端在使用HTTPS方式与Web服务器通信时步骤客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
    客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。Web服务器利用自己的私钥解密出会话密钥。Web服务器利用会话密钥加密与客户端之间的通信。

    HTTPS的优点
    尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高。

    HTTPS的缺点
    虽然说HTTPS有很大的优势,但其相对来说,还是存在不足之处的:HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗

    HTML 中的 viewport 控制视图的规则是怎样的?
    手机浏览器把页面放在一个虚拟窗口中即viewport中,比屏幕宽,这样不用把每个网页挤到很小的窗口中 用户可以通过平移和缩放来看网页的不同部分
    width:控制 viewport 的大小,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素。viewport分为layout viewport 、 visual viewport 和 ideal viewport 三类,其中的ideal viewport是最适合移动设备的viewport 他的宽度等于移动设备的屏幕宽度,只要在css中把某一元素的宽度设为ideal viewport的宽度(单位用px),那么这个元素的宽度就是设备屏幕的宽度了,也就是宽度为100%的效果。ideal viewport 的意义在于,无论在何种分辨率的屏幕下,那些针对ideal viewport 而设计的网站,不需要用户手动缩放,也不需要出现横向滚动条,都可以完美的呈现给用户
    css中的1px并不等于设备的1px,屏幕像素根据不同屏幕分辨率物理像素也不同 用户缩放也会影响css中ps的变化 在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性:设备物理像素和设备独立像素的比例,devicePixelRatio = 物理像素 / 独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,可以知道该设备上一个css像素代表多少个物理像素。但是devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以现在还并不能完全信赖这个东西

    height:和 width 相对应,指定高度。
    initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
    maximum-scale:允许用户缩放到的最大比例。
    minimum-scale:允许用户缩放到的最小比例。
    user-scalable:用户是否可以手动缩放。

    要把当前的viewport宽度设为ideal viewport的宽度,既可以设置 width=device-width,也可以设置 initial-scale=1,但这两者各有一个小缺陷,就是iphone、ipad以及IE 会横竖屏不分,通通以竖屏的ideal viewport宽度为准。所以,最完美的写法应该是,两者都写上去,这样就 initial-scale=1 解决了 iphone、ipad的毛病,width=device-width则解决了IE的毛病:
    Viewport的那个你理解两种写法就行:
    1.强制屏宽750px width=750
    2.跟随屏宽 width=device-width
    Ps:这一块有点迷
    你通过发出请求的过程中,经过了哪些物理硬件?
    网卡 集线器 中继器 调制解调器 网桥 交换机 路由器