问答
1.OSI 七层模型指什么 (难度***)
OSI七层模型是所有计算机互联为网络的标准框架,这一框架可分为七层。
物理层:提供数据通信的物理介质,它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号
数据链路层:确定了0和1的分组方式和计算机的接发者地址。如以太网为主导的分组协议规定一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。以太网数据包的"标头",包含了发送者和接受者的信息。连入网络的所有设备,都必须具有"网卡"接口。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
网络层:引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",规定网络地址的协议,叫做IP协议。根据IP协议发送的数据,就叫做IP数据包。
会话层(Session Layer):负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
表示层(Presentation Layer):把数据转换为能与接收者的系统格式兼容并适合传输的格式
传输层:"传输层"的功能,就是建立"端口到端口"的通信,常见协议有UDP、TCP协议;
应用层:规定应用程序的数据格式,常见协议有HTTP、FTP等
2.HTTP 的工作原理是什么? (难度***)
- 用户使用客户端访问URL,客户端与服务端建立连接;
- 客户端向服务端发送请求;
- 服务器接收到请求处理后返回响应;
- 客户端接收响应后断开连接;
3.URI 的格式是什么?常见的协议有哪些 (难度***)
格式:
<scheme>://<user>:<password>@<host>:<port>/<path>?<query1>&<query2>#<hash>
-
协议:
- http:超文本传输协议,主要用于传输网络资源;
- https:超文本传输安全协议。使用超文本传输协议进行通讯且利用 SSL/TLS 协议来对封包进行加密;
- ftp:文件传输协议,主要用来传输文件;
- smtp:简单邮件传输协议。主要用于以推送方式传输邮件;
- ssh:为计算机上的 Shell 提供安全的传输和使用环境的安全协议;
4.HTTP 协议有几种和服务器交互的方法 (难度***)
- GET:获取资源,可在地址栏提交查询字符串;
- POST:更新资源,在请求体中带上需要提交的数据;
- PUT:上传资源;
- DELETE:删除资源;
- HEAD:获取报文首部;
- OPTIONS:查询针对请求URI指定资源支持的方法;
- TRACE:让服务器端将请求通信环返回给客户端;
- CONNECT:要求在与代理服务器通信时建立隧道,常与SSL或TLS一起包装使用,也就是HTTPS;
5.状态码200,301, 304,403,404,500,503分别代表什么意思 (难度****)
响应报文首部会借助状态码来告诉服务端对本次请求的处理结果,状态码以3位数字和原因短语构成。
常见的状态码包括:
200 OK:表示服务器已经成功处理了客户端的请求并作出了正确的响应;
204 Not Content:表示服务器已成功处理客户端的请求,但响应报文中不含实体的主体部分,也不允许返回实体主体;
206 Partial Content:表示客户端进行了范围请求,服务器也成功的执行了这部分的GET请求;
301 Moved Permanently:永久重定向,表明该资源已经被分配了新的URL,输入老URI会自动跳转至新URL;
302 Found:临时重定向,也表明该资源被分配了新的URI,但新的URI也可能发生改变;
304 Not Modified
400 Bad Request:请求报文中存在语法错误;
401 Unauthorized :表示该请求需要通过HTTP认证;
403 Forbidden:表示请求被服务器拒绝,往往是客户端所在IP地址未授权;
404 Not Found:表明在服务器上找不到这个资源;
500 Internal Server Error:服务器在执行请求时出错
503 Service Unavailable:服务器暂时处于超负载(挂了)或正在维护中,暂时无法执行请求
6.报文有哪几部分组成? (可选 难度****)
- 报文行:规定请求方法、http协议的版本号、状态等
- 报文头部:规定报文的基本信息
- 空行:用于分隔报文头部和报文体
- 报文体
7.请求头的格式和作用是什么?给个范例截图说明 (可选 难度****)
请求行的格式是:
GET / HTTP/1.1
GET表示请求的方法;
/表示请求资源所在的路径;
HTTP/1.1表示所用到的HTTP协议的版本号
HTTP/1.1 200 OK
HTTP/1.1表示所用到的HTTP协议的版本号
200 OK表示状态码和状态描述
8.首部的格式和作用是什么?给个范例截图说明 (可选 难度****)
首部字段主要是由字段名:字段值组成。首部定义数据通信的一些重要描述性信息,通常可分为通用首部字段、请求首部字段、响应首部字段和实体首部字段。
- 请求头
host
:请求资源所在的主机名;
Connection
:规定连接方式为持久连接;
Pragma
:标注不需要缓存;
Cache-Control
:规定缓存的工作机制,这里规定不需要缓存;
User-Agent
:创建请求的浏览器和用户代理名称等信息传达给服务器;
Accept-Encoding
:告知服务器用户代理支持的内容编码及内容编码的优先级顺序
Accept-Language
:告知服务器用户代理能够处理的自然语言集(指中文或英文等),以及自然语言集的相对优先级
Cookie
:网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)
Server
:告知客户端当前服务器上安装的 HTTP 服务器应用程序的信息;
Date
:创建 HTTP 报文的日期和时间;注意这里是GMT时间;
Content-Type
:说明了响应体内对象的媒体类型。这里指明对象为以 utf-8 编码的 HTML 文本文件
Transfer-Encoding
:规定了传输报文主体时采用的编码方式。这里是指使用分块传输编码;
X-Powered-By
:表明当前资源是用什么技术开发;
Access-Control-Allow-Origin
:列出允许进行跨域的对象域
Content-Encoding
:告知客户端服务器对实体的主体部分选用的内容编码方式;
9.主体的作用是什么?给个范例(可选 截图说明难度****)
返回所请求的资源
10.简述浏览器缓存是如何控制的(可选 难度*****)
主要通过校验和设置以下几个参数达到缓存控制的目的:
```:规定缓存的最常世界,单位为秒;
```Pragma:no-cache/Pragma
```:通过Pragma控制页面缓存,配合Expires:0一起达到目的;
```Expires
```:规定缓存具体过期日期;
```Last-Modified
```:页面最后生成时间
#####11.下图各个参数是什么意思(可选 难度*****)[](http://7xpvnv.com2.z0.glb.qiniucdn.com/257149f7-1e11-4262-9b15-159389db83c6)
```Request URL```:请求的资源所在位置;
```Request Method```:请求方法,这里使用 PUT;
```Status Code```:状态码,这里表示资源请求成功;
```Remote Address```:远程地址。资源所在 IP 地址;
```Connection```:连接方式。这里使用持久连接;
```Content-Length```:主体部分的大小,单位是字节;
```Content-Type```:主体内对象的媒体类型。这里是 json 文件;
```Date```:创建报文的日期和时间;
```Server```:服务器上用于处理 HTTP 的服务器应用程序的信息;
```X-Powered-By```:开发资源的技术;
```Accept```:能够处理的媒体类型及其相对优先级。这里可以处理与请求相符的任意媒体类型;
```Accept-Encoding```:用户代理支持的内容编码及内容编码的优先级顺序。这里可以接受gzip、deflate 和sdch 格式;
```Accept-Language```:用户代理能够处理的自然语言集;
```Content-Type```:表示以Form表单形式提交数据,数据为article:XXX
```Cookie```:之前从服务器获得的 Cookie信息;
```Host```:资源所在的主机;
```Origin```:资源所在的源,包括协议主机,和端口号;
```Referer``:服务器请求的原始资源的 URI;
```User-Agent```:发出请求的浏览器信息;
```X-Requested-With```:以何种方式发出请求。这里使用的是 ajax;