美文网首页
前端基础(问答25)

前端基础(问答25)

作者: 郑哲明 | 来源:发表于2016-09-03 09:50 被阅读50次

    keywords: http。


    • OSI 七层模型指什么

    OSI模型.png

    参考资料:
    互联网协议入门

    • HTTP 的工作原理是什么?

    HTTP协议规定了客户端与服务器之间通信的数据格式,默认使用80端口。

    1、建立tcp/ip连接;
    2、客户端向服务端发送http请求,请求包括head和数据两部分;
    3、服务端收到http请求后进行处理,处理完成后发出http响应;
    4、客户端收到http响应,解析数据并渲染页面。

    客户端发送http请求,到服务端接收http请求,还需要经过一下流程:

    TCP/IP通信传输流
    • URI 的格式是什么?常见的协议有哪些

    URI格式:

    URI格式

    常见协议:http、https、ftp、file

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

    有8中互动方法:
    1、GET:向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据。
    2、POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。
    3、HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。
    4、DELETE:请求服务器删除Request-URI所标识的资源。
    5、TRACE:回显服务器收到的请求,主要用于测试或诊断。
    6、PUT:向指定资源位置上传其最新内容。
    7、OPTIONS:使服务器传回该资源所支持的所有HTTP请求方法。
    8、CONNECT

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

    状态码告知从服务端返回的请求结果,借助状态码,用户可以知道服务端是正常处理了请求,还是出现了错误。

    状态码有以下5类:

    五类状态码

    200:客户端发送的请求被服务端正常处理;
    301:永久重定向。该状态码表示请求的资源以被分配新的URI,以后应使用资源现在所指的URI;
    304:是指已经访问过的请求信息被缓存,再次访问时调用缓存内的文件;
    403:对请求资源的访问被服务器拒绝;
    404:服务器上无法找到请求的资源;
    500:服务器端在执行请求时发生错误;
    503:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

    • 报文有哪几部分组成?

    HTTP报文分首部和主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。

    HTTP报文结构
    • 请求头的格式和作用是什么?给个范例截图说明

    请求报文和响应报文结构如下:

    举两个例子:

    请求报文实例 响应报文实例
    • 首部的格式和作用是什么?给个范例截图说明

    HTTP首部字段格式:

    首部字段名:字段值
    

    例如Content-Type表示报文主体的对象类型。

    Content-Type

    HTTP首部字段根据用途可分为4中类型:
    1、通用首部字段:请求报文和响应报文都会使用的首部;
    2、请求首部字段:从客户端向服务端发送请求报文时使用的首部;
    3、响应首部字段:从服务端向客户端返回响应报文时使用的首部;
    4、实体首部字段:针对请求报文和响应报文的实体部分所使用的首部。

    HTTP/1.1规定了47中首部字段:

    通用首部字段 请求首部字段 响应首部字段-1 响应首部字段-2
    • 主体的作用是什么?给个范例

    主体为被发送的数据。

    请求报文主体:

    请求报文主体

    响应报文主体:

    响应报文主体
    • 简述浏览器缓存是如何控制的

    浏览器是否使用缓存、使用多久是由服务器控制的。当浏览器请求网页时,服务器端返回的http响应报文中,包含了有关缓存的关键信息。

    关于缓存控制,主要有以下4种首部字段:

    1、Cache-Control:控制缓存的行为;
    2、Expires:资源失效的日期;
    3、Last-Modified:资源最终修改的时间;
    4、ETag:实体标识,对资源以字符串形式做唯一性标识的方式,当资源更新时,ETag也需要更新。

    当通过Cache-Control或Expires设置页面使用缓存时,当用户刷新页面,浏览器会在请求报文中加入条件请求:If-Modified-SinceIf-None-Match。前者即浏览器最初得到的Last-Modified,后者即浏览器最初得到的ETag,当服务器发现资源的更新时间晚于If-Modified-Since,或在服务器端的资源当前ETag与If-None-Match不符时,服务器会响应整个资源,否则只会响应一个303 Not Modified 状态码(浏览器将从缓存中获取资源)。

    参考资料:
    浏览器缓存控制简介及配置策略

    • 下图各个参数是什么意思

    报文

    相关文章

      网友评论

          本文标题:前端基础(问答25)

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