-
OSI 七层模型指什么
OSI七层模型称为开放式系统互联参考模型,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。
1.物理层:物理层定义了通讯网络之间物理链路的电气或机械特性,以及激活、维护和关闭这条链路的各项操作。主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
2.数据链路层:负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
3.网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
4.传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
5.会话层:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
6.表示层:主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。
7.应用层:面向用户的最高层,通过软件应用实现网络与用户的直接对话。
- HTTP 的工作原理是什么?
1.客户端与服务器建立链接。只要单击某个超级链接,HTTP就开始工作了。
2.建立连接后,客户端向服务器发送一个请求,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包含请求修饰符、客户机信息和可能的内容。
3.服务器接收到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4.客户端接收到服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
-
URI 的格式是什么?常见的协议有哪些
常见的协议
http: 超文本传输协议,主要用于传输网络资源,端口号为80。
https: 超文本传输安全协议,使用超文本传输协议进行通讯并且使用SSL/TSL协议来对封包进行加密,端口号为443.
ftp: 远程文件传输协议,允许用户将远程主机上的文件拷贝到自己电脑。
smtp: 简单邮政传输协议,用于传输电子邮件。
ssh: 为计算机上的shell提供安全的传输和使用环境的安全协议。
- HTTP 协议有几种和服务器交互的方法
GET 请求服务器发送资源,通俗来说就是获取资源。
POST 向服务器发送数据。
PUT 向服务器写入资源,如存在,就替换。
DELETE 删除资源。
HEAD 和GET类似,服务器的响应中没有资源内容,只有资源基本信息(报文首部)。
OPTIONS 用于请求服务器告知所支持的HTTP请求方法。
TRACE TRACE请求会在目的服务器端发送一个“闭环”诊断,行程最后一站服务器会弹回一条 TRACE 响应,并在响应主体中携带它收到的原始请求报文(主要用于诊断)
- 状态码200,301,304,403,404,500,503分别代表什么意思
1xx 表示成功接收请求,需进一步处理
2xx 成功接收请求并已完成整个处理过程
3xx 为完成请求,客户需采取进一步操作
4xx 客户端请求出错
5xx 服务器错误
200 一切正常,执行成功。
301 所请求的文档在其他地方,新的URL会在定位响应头信息中给出,浏览器会自动连接到新的URL。
304 缓冲的文档还可以继续使用。
403 资源不可用,服务器拒绝请求。
404 无法找到指定位置的资源。
500 服务器内部错误,无法完成请求。
503 表示服务器因在维护或已经超载而无法响应。
- 报文有哪几部分组成?
HTTP报文是简单的格式化数据块,每个报文都包含一条来自客户端的请求或者服务器的响应,由三部分组成:
1.请求行 - 对报文进行描述的起始行,规定请求方法、http协议版本号、状态等。
2.请求头 - 包含属性的首部块,请求报文添加的附加信息。
3.正文 - 可选的包含数据的主体部分
-
请求头的格式和作用是什么?
Accept: 浏览器能接收的资源类型
Accept-Encoding: 浏览器能接收的数据压缩格式
Accept-Language: 告知服务器能够处理的语言
Cache-Control: 缓存控制
Connection: 客户端与服务器是否保持链接
Cookie: 存在客户端的键值对文本
host: 请求资源所在的主机名
User-Agent: 发送请求的应用程序名称,客户端信息
- 首部的格式和作用是什么?
-
通用首部字段,指请求报文和响应报文双方都会使用的首部。
-
请求首部字段:指从客户端往服务器端发送请求报文中所用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
-
响应首部:指是由服务器端向客户端返回的报文。
-
主体的作用是什么?
主体就是客户端发给服务器或者服务器发给客户端的主要内容。
简述浏览器缓存是如何控制的?
浏览器在请求已访问过的URL时,会判断是否使用缓存,服务器返回的HTTP响应报文中,主要通过以下字段判断缓存关键信息
Cache-Control 缓存的指示日期
Expires 资源失效的日期
Last-Modified 资源最近一次的修改时间
ETag: 服务器会响应一个Etag字段, 一个表示文件唯一的字符串, 一旦文件更新, Etag也会跟着更改,以此判断当前文件是不是最新的。
-
下图各个参数是什么意思
General(通用首部)
Request URL: 请求资源的URL路径
Request Method: 请求方法
Status Code: 响应状态码及描述
Remote Address: 请求服务器的IP及端口
Response Headers(响应首部)
Connection:keep-alive: 响应的连接状态为保持链路连接
Content-Length: 响应内容长度(字节)
Content-Type: 响应体内容格式
Date: 该响应报文创建的时间
Server: 服务器版本信息
X-powered-by: 服务器使用技术
Request Headers(请求首部)
Accept: 客户端能处理的响应格式
Accept-Encoding: 客户端能处理的响应内容编码格式
Accept-Language: 客户端能处理的语言和优先级
Connection: keep-alive : 请求连接为保持链路连接
Content-Length: 请求体内容长度
Content-Type: 请求体内容格式
Cookie: 缓存信息
Host: 服务器主机域名及监听端口
Origin: 告知服务器请求的源地址
Referer: 告知服务器请求的原始资源的URL
User-Agent: 客户端浏览器信息
X-Requeested-With: XMLHttpRequest: 表示使用Ajax异步请求