HTTP

作者: 大脸猫_2e21 | 来源:发表于2018-04-13 18:55 被阅读0次

    端口

    21端口-FTP
    80端口-HTTP
    93端口-DNS
    443端口-HTTPS
    1080端口-SOCKS代理
    

    OSI七层模型指什么?

    应用层-表示层-会话层-传输层-网络层-数据链路层-物理层
    五层协议:应用层-传输层-网络层-数据链路层-物理层
    

    HTTP的工作原理是什么

    - 用户使用客户端访问URL,客户端与服务端建立连接
    - 客户端向服务端发送请求
    - 服务器接收到请求处理后返回响应
    - 客户端接收响应后断开连接
    
    

    URI的格式是什么?常见的协议有哪些

    image.png
    与HTTP关系密切的协议:IP、TCP、DNS
    

    HTTP协议有几种和服务器交互的方法

    基本方法有4种:get,post,put,delete。一个url地址,它用于描述一个网络上的资源,而http中的get,post,put,delete对应着这个资源的查,改,增,删4个操作。
    HEAD:获取报文首部
    OPTIONS:查询针对请求URI指定资源支持的方法
    TRACE:让服务器端将请求通信环返回给客户端
    CONNECT:要求在于代理服务器通信时建立隧道,常与SSL或TLS一起包装使用,也就是HTTPS
    
    

    状态码200,301, 304,403,404,500,503分别代表什么意思

    200:请求成功
    301:重定向
    304:请求资源没变化,告诉浏览器用本地缓存
    403:服务器理解客户端的请求,但是禁止访问
    404:找不到指定位置资源
    500:服务器遇到了意料不到的情况,不能完善客户端的请求
    502:代理坏掉了
    503:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状态是临时的,并且将在一段时间以后恢复。
    504:找到网关,但是请求超时,没有返回请求
    

    报文有哪几部分组成?

    jk

    请求头的格式和作用是什么?给个范例截图说明

    image.png

    首部的格式和作用是什么?给个范例截图说明

    image.png

    主体的作用是什么?给个范例

    image.png

    简述浏览器缓存是如何控制的

    [Expires]:
    
    描述的是一个绝对时间,根据的是客户端时间。用GMT格式字符串表示,如Expires:Thu, 31 Dec 2037 23:55:55 GMT 下次浏览器再次请求同一资源时。先从哭护短缓存中寻找,找到这个资源后,拿出它的[Expires]跟当前的请求时间比较。如果请求时间在[Expires]指定的失效时间之前,就能命中缓存,这样就不用再次到服务器上去缓存一遍,节省了资源。但是正因为是绝对时间,如果客户端时间被随意更改下,这个机制就失效了。所以我们需要[Cache-Control]。
    [Cache-Control]
    
    描述的是一个相对时间,在进行缓存命中时,都是利用浏览器时间判断。这两个header可以只启用一个,也可以同时启用,当response header中,[Expires]和[Cache-Control]同时存在时,[Cache-Control]优先级高于[Expires]。
    当浏览器对某个资源的请求没有命中强缓存,就会发一个强求到服务器,验证协商缓存是否命中。如果命中,则还是从客户端缓存中加载。协商缓存利用的是[Last-Modified,If-Modified-Since]和[ETag、If-None-Match]这两对Header来管理的。
    [Last-Modified]:原理和上面的[expires]相同,区别是它是根据服务器时间返回的header来判断缓存是否存在。但是有时候也会服务器上资源其实有变化,但是最后修改时间却没有变化的情况(这种问题也不容易被定位),这时候我们需要[ETag、If-None-Match]。
    
    [ETag、If-None-Match]:原理与上相同,区别是浏览器跟服务器请求一个资源,服务器在返回这个资源的同时,在respone的header加上ETag的header,这个header是服务器根据当前请求的资源生成的一个唯一标识,这个唯一标识是一个字符串,只要资源有变化这个串就不同。
    
    [ETag、If-None-Match]这么厉害我们为什么还需要[Last-Modified、If-Modified-Since]呢?有一个例子就是分布式系统尽量关闭掉ETag(每台机器生成的ETag都会不一样)
    
    [Last-Modified,If-Modified-Since]和[ETag、If-None-Match]一般都是同时启用。
    

    下图各个参数是什么意思

    image.png

    相关文章

      网友评论

          本文标题:HTTP

          本文链接:https://www.haomeiwen.com/subject/azjckftx.html