1. OSI 七层模型指什么 (难度*)
OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型,实现不同计算机及网络之间的通讯ヮ
- 1,物理层:将信息编码成电流脉冲或其他信号用于网上传输(原始比特流的传输)——对应网络中的:中继器,集线器、网线、HUB
- 2,数据链路层:通过物理网络链路供数据传输(将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址)——对应网络中的:网卡,网桥,交换机
- 3,网络层:把网络地址翻译成物理地址,决定数据的路径选择和转寄,IPv4,IPv6(本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据)——对应于网络中的:网络:路由器,防火墙、多层交换机
- 4,传输层:向高层提供可靠的端与端的网络数据流服务(常规数据递送,面向连接或无连接。包括全双工或半双工、流控制和错误恢复服务 )——对应于计算机:进程和端口
- 5,会话层:实现不同机器上的用户建立对话关系(在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式)——对应于计算机:建立会话,SESSION认证、断点续传
- 6,表示层:用于应用数据编码和转化,以确保一个系统应用层发送的信息可以被另一个系统应用层识别。(格式化数据,以便为应用程序提供通用接口。这可以包括加密服务。解决不同系统之间的通信)——对应于计算机:编码方式,图像编解码、URL字段传输编码
- 7,应用层:规定数据的传输协议(直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输)——对应于计算机:应用程序,如FTP,SMTP,HTTP
部分参考:http://www.2cto.com/net/201307/232200.html
2. HTTP 的工作原理是什么? (难度*)
- HTTP通信机制是一次Web浏览器与Web服务器之间完整的HTTP通信过程
1 . 建立TCP连接,与ip协议构成tcp/ip协议族,建立网络连接
2 .Web浏览器向Web服务器发送请求命令
3 . 请求命令发送后, Web浏览器发送请求头信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
4 .Web服务器应答,应答的第一部分是协议的版本号和应答状态码
5 .Web服务器发送应答头信息,服务器随同应答向用户发送关于它自己的数据及被请求的文档
6 .Web服务器向浏览器发送数据,应答头信息发送完后,服务器以Content-Type应答头信息所描述的格式发送用户所请求的实际数据
7 .关闭TCP连接,Web服务器向浏览器发送了请求数据后就要关闭TCP连接,如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive.TCP连接在发送后将仍然保持打开状态
3.URI 的格式是什么?常见的协议有哪些 (难度*)
- URI:统一资源标识符,是更通用的资源标识符,URL是他的一个子集。
URI由两个子集构成- URL:通过描述资源的位置来描述资源
- URN:通过名字来识别资源和位置无关
格式:
:// : @ : / ? # scheme:指的是协议
user和password现在不常见了,不会在URL明文书写用户名和密码了,都是通过登录的方式
host是主机的域名
port是端口号,http默认是80
path是资源的路径
params,在一些协议中需要参数来访问资源,例如ftp是二进制还是文本传输,参数是名值对,用;隔开
query:这个是get请求最常用的传递参数方式了 ?a=1&b=2&=3
hash也成为片段,设计为标识文档的一部分,很多MVVM框架用作了路由功能常见的协议有:http: 超文本传输协议
- https: 安全套接字层超文本传输协议
- ftb: 文件传输协议
- mailto: 电子邮件协议
- file: 本地文件传输协议
4. HTTP 协议有几种和服务器交互的方法 (难度*)
1、get :GET是最常用的方法,通常用于请求服务器发送某个资源
2、post :POST用于向服务器发送数据,通常用来支持HTML的表单(input、select、textarea),表单中的数据会被发送到服务器
3、head :HEAD方法和GET类似,但是在服务器的响应中没有资源的内容,只有资源的一些基本信息,主要用于
》1 在不获取资源的情况下获取资源信息(类型、大小等)
》2, 通过状态码产看资源是否存在
》3, 通过查看首部,测试资源是否被修改了
4、put:和GET从服务器获取资源相反,PUT用于向服务器写入资源。PUT的语义就是让服务器用请求的主体部分创建一个请求URL命名的文档,如果存在就替换
5、trace:客户端发送一个请求的时候,这个请求可能会穿过防火墙、代理、网关和一些其它应用程序,每个中间节点都可能修改HTTP请求,TRACE方法允许客户端在最终请求发往服务器的时候,看看它变成了什么样子。TRACE请求会在目的服务器端发送一个“闭环”诊断,行程最后一站服务器会弹回一条TRACE响应,并在响应主题中携带它收到的原始请求报文
6、delete:DELETE方法用于要求服务器删除请求的URL,和PUT一样,服务器可能会不支持
7、options:OPTIONS方法用于请求 web服务器告知其支持的各种功能5. 状态码200,301, 304,403,404,500,503分别代表什么意思 (难度**)
- 200 ok ,表示请求被服务器处理成功
- 301 Moved Permanently ,表示永久性重定向,浏览器会自动跳转到Location头中给出的URl
- 304 Not Modified,表示页面使用本地缓存,不向服务器发送请求
- 403 Forbidden,资源存在,但用户没有权限访问(服务器接受请求,但拒绝访问)
- 404 Not Found,无法找到指定位置的资源
- 500 Internal Server Erro, 服务器执行请求发生错误
- 503 Service Unavailabl ,服务器超负载或停机维护
6. 报文有哪几部分组成? (可选 难度**)
报文分为请求报文和响应报文
- HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成
- HTTP 响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成
HTTP响应报文与工作原理详解(1)
7.请求头的格式和作用是什么?给个范例截图说明 (可选 难度**)
- 请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
- Accept:告诉服务器浏览器能接收的数据类型
- Accept-Enocoding:能接受的压缩格式类型
- Accept-Language:告诉服务器能发送的语言
- Cache-Control:缓存指示(是否缓存,缓存多长时间)
- Connection :是否保持连接
- Cookie:客户端信息
- Referer 告诉服务器链接是从哪个页面链接过来的,服务器籍此处理一些信息
- Host:请求的域名,允许多个域名同处一个IP 地址,即虚拟主机等
- User-Agent :发起请求的客户端程序
8 .首部的格式和作用是什么?给个范例截图说明 (可选 难度**)
- Request URL:请求的URL
- Request Method:请求的方法
- Status Code:请求的状态
- Remote Address:服务器ip和端口
9 .主体的作用是什么?给个范例(可选 截图说明难度**)
主体就是客户端和服务器所传输的主要内容10 .简述浏览器缓存是如何控制的(可选 难度*)
Expires 绝对时间 :
1,浏览器第一次向服务器请求资源,服务器返回信息,在response header中会加上Expires(有效时间)。
2,浏览器把资源和response header一起缓存
3, 当再次请求这一资源时,浏览器从缓存中找到资源查看Expires。如果当前时间没超出Expires的时间,就从缓存中拿资源。否则重新从服务器请求资源,Expires在从新请求时更新。
由于其为绝对时间,当服务器时间与客户端时间相差较大时,缓存管理容易出现问题,比如随意修改下客户端时间,就能影响缓存命中的结果Cache-Control 相对时间:
和Expires一样,不过是相对于本次请求之后的秒数(即上次请求时间+Cache-Control时间)
11 .下图各个参数是什么意思(可选 难度*)
general: 通用首部,客户端和服务器都可以使用,提供了与报文相关的最基本的信息。
Request URL:请求URL。
Request Method:请求方法。
Status Code:状态码。
Remote Address:远程地址。Response Headers:响应首部:为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能、其它一些特殊指令等。
Connerction:允许客户端和服务器指定与请求/响应连接相关的选项
Content-Lenght: 响应的报文长度。
Content-Type:响应的数据格式类型。
Data:响应的时间日期
Server:响应服务器的名称及型号。
X-Powered-By:表明当前站点(或资源)是用什么技术开发。
Request Headers:请求首部,客户端告诉服务器自身的一些信息。
Accept:客户端可识别的内容类型列表。
Accept-Encoding:客户端可接受的编码压缩格式。
Accept-Language:客户端可接受的自然语言。
Connection:连接方式。
Content-Lenght: 请求报文长度。
Content-Type:表示可以接受的数据格式类型
Cookie:浏览器向服务器发送请求时发送cookie,或者服务器向浏览器附加cookie。
Host: 域名和端口号。
Origin:请求的源。
Referer:指当前请求的URL是在什么地址引用的。
User-Agent:发请求浏览器的相关信息,名称和版本。
X-Requested-With:表示发送请求报文的应用程序是以XMLHTTPRequest的形式发送的数据(主要用于识别ajax请求)From Data:上传的文件信息
article:文章信息