1.OSI 七层模型指什么
答:OSI七层模型通过七个不同层次的结构模型,使不同系统不同网络能够进行可靠的通讯,它的最主要的功能就是帮助不同类型的主机实现数据传输。完成中继功能的节点通常称为中继系统,在OSI七层模型中,处于不同层的中继系统有不同的名称
- 1.物理层:以二进制数据形式在物理媒体上传输数据。
- 2.数据链路层:确定了数据的分组方式,以及网络数据包的形式。
- 3.网络层:引进网址,用于区分各个网络是否处于一个子网络。
- 4.传输层:建立端口与端口间的通讯,实现程序之间的交流。
- 5.会话层:在两个系统之间建立会话。
- 6.表示层:把数据转化成能与接收者的系统格式兼容并适合传输的格式。
-
7.应用层:决定了向用户提供应用服务时的通信活动,如http、https、ftp就是应用层协议。
2.HTTP 的工作原理是什么?
答:HTTP:(Hyper Text Traner Protocol)超文本传输协议,它是一种通信协议,它允许将超文本标记语言(HTML)文档从web服务器传送到客户端的浏览器,它是一种应用层的协议,承载于TCP之上。由请求和响应构成,是一个标准的客户端服务模型。
工作流程如下:
1.地址解析,从浏览器中输入的URL分解出协议名、主机、端口、对象等部分,在这一步中需要域名系统DNS解析域名localhost.com得到主机名。
2.封装HTTP请求报文。
3.封装成TCP包,建立TCP连接。
4.客户端发送请求命令,建立连接后客户机发送一个请求给服务器,请求的格式为:统一资源标识符(URI)、协议版本号、后面的MIME信息包括请求修饰符、客户机信息和内容。
5.服务器收到请求报文、处理请求返回响应内容和响应报文。
6.服务器关闭TCP连接,也可以通过Connection keep-alive保持存在路线,但是是断开的状态。
7.客户端收到响应报文跟响应文件,将其解析渲染出来。
3.3. URI 的格式是什么?常见的协议有哪些
答:URI是统一资源标识符,它是更通用的资源标识符,它由两个子集构成一个是URL,它是通过资源位置来描述资源的,另一个是URN,它是由资源名字来描述资源的,跟位置无关。
常见的协议有:HTTP、HTTPS、FTP
4. HTTP 协议有几种和服务器交互的方法
答:1.GET:请求服务器发送某个资源。
2.POST:向服务器发送数据,通常用于支持HTML的表单input等,表单中的数据会被发送到服务器。
3.HEAD:HEAD方法与GET类似,但是在服务器的响应中没有资源的内容,只有资源的一些基本信息,主要用于查看资源大小、类型,是否存在,查看资源是否被修改。
4.PUT:跟GET从服务器获取资源相反、它是用于给服务器写入一个资源。
5.TRACE: 用于查看发送到服务器的请求是否被服务器接收或者在发送过程中被修改。
6.DELETE:请求服务器删除对应URL。
7.OPTIONS:请求查阅服务器性能或查阅资源相关的选项需求。
5.状态码200,301, 304,403,404,500,503分别代表什么意思
答:200:OK客户端请求成功。
301:重定向,URI发生了改变浏览器自动访问新的URL。
304:跟上次访问的缓存相同,直接使用上次缓存。
403:禁止访问权限不够。
404:服务器找不到请求的资源。
500:服务器执行请求发生错误
503:服务器超出载荷或者停机维护
6.报文有哪几部分组成?
答:HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
HTTP响应报文由状态行(status-line)、消息报头(header)和响应正文(response-body)三个部分组成。
7.请求头的格式和作用是什么?给个范例截图说明
- Accept:告诉服务器能够发送的媒体类型。
- Accept-Encoding:告诉服务器能发送哪些压缩格式。
- Connection:客户端和服务器是否保持连接。
- Host:接收请求的服务器的主机名和端口号。
- Origin:请求的网站源信息。
- Referer:提供了包含当前请求URI的文档的URL,告诉服务器自己的来源。
- User-Agent:发送请求的客户端应用程序。
- cookie:客户端的一些信息保存用户的登录状态等。
8. 首部的格式和作用是什么?给个范例截图说明
- Request:请求的URL。
- Request Address:服务器的IP地址和端口号。
- Request Method:请求的方法。
- Status Code:状态码和状态语句。
9. 主体的作用是什么?给个范例
主体就是客户端与服务器传输的核心内容,用于给用户呈现信息,通常是字符串文本,有的是json。
10、简述浏览器缓存是如何控制的?
- 浏览器的缓存机制,其实就是HTTP协议定义的缓存机制和HTML的meta标签缓存机制。
- 如果浏览器请求时,没有缓存,则向服务器请求内容,通过缓存机制判断是否需要缓存。
- 如果浏览器请求时,本地有缓存,那么首先判断缓存是否存在有效期,这里通过HTTP的Cahe-control和Expires指明的有效期,Cache-control的优先级更高,设置更精细。
如果没有过期则读取本地缓存,如果过期了则查询其他定义: - Last-Modified:这个响应资源的最后修改时间,web服务器在响应请求时,告诉浏览器资源的最后修改时间。
- If-Modifled-Since:当资源过期时发现资源具有Last-Modified声明,则再次向web服务器请求时带上上头If-Modifled-Since,表示请求时间。web服务器收到请求后发现有头if-Modified-S ince则与被请求资源的最后修改时间进行比对,若最后修改时间较新则响应HTTP200,若无修改则响应HTTP304。
Etag/if-None-Match也要配合Control使用 - Etag:web服务器响应请求时,高速浏览器当前资源在服务器的唯一标识。
- if-None-Match:当资源过期时,发现资源具有Etag声明,则再次向web服务器请求时带上头if-None-Match(Etag的值)。web服务器收到后进行比较,再决定返回200或者304.
11.下图各个参数是什么意思
1.General:概括信息,浏览器自动生成概括,不是http协议内容。
2.Request URL:请求URL地址。
3.Request Method:请求方法。
4.Status Code:请求的状态码和状态短语。
5.Remote Address:请求的IP地址和端口号。
6.Response Headers:响应头部。
7.Coonection:连接状态,每次请求后都会关闭http连接,为了优化访问现在默认何止keep-alive保持连接,即TCP\IP连接不关闭。
8.Content-length:内容长度。
9.Content-Type:内容类型。
10.Date:响应事件。
11.Server:服务器软件信息。
12.X-Powered-By:告知网站使用什么语言框架编写的。
13.Request Headers:请求头部。
14.Accept:能够接受的响应格式。
15.Accept-Encoding:能够接受的编码格式。
16.Accept-language:能够接受的语言。
17.Cookie:用于识别用户的缓存。
18.Host:服务器主机名。
19.Origin:源。
20.Referer:网站的来源信息,包括历史记录信息。
21.User-Agent:客户端信息。
22.X-Requested-With:判断是AJAX请求还是HTTP请求。
23.Form-Data:从querystring中获得的表单数据。
24.article:数据文章标题。
本文归本人和饥人谷所有 转载请注明出处