1.OSI 七层模型指什么?
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。
![Uploading Paste_Image_011304.png . . .]
](http://upload-images.jianshu.io/upload_images/2453530-1dec13dd8f47f5be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.HTTP 的工作原理是什么?
HTTP(hyper text transfer protocal) 超文本传输协议,HTTP是一种协议,所以只要是遵从HTTP协议的设备都能访问服务器,比如手机、智能外设、浏览器等。HTTP使用请求--响应机制,客户端想服务器发送请求(请求方法 路径 协议版本号 请求头 请求体),服务器接收请求通过后台逻辑计算后向客户端返回响应(协议 状态码 状态描述 响应头 响应体)。
HTTP协议工作的具体步骤:
1.客户端连接到Web服务器:
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
2.发送HTTP请求:
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
3.服务器接受请求并返回HTTP响应:
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4.释放连接TCP连接:
Web服务器主动关闭TCP套接字,释放TCP连接;客户端被动关闭TCP套接字,释放TCP连接。
5.客户端浏览器解析HTML内容:
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
3.URI 的格式是什么?常见的协议有哪些
URI(统一资源标识符)是一个用于标识某一互联网资源名称的字符串。URL是Uniform Resource Locator的缩写,译为“统一资源定位符”。URI是更通用的标识符,URL是URI的子集。
常见的协议有HTTP1.1,HTTPS,POP3,SMTP,telnet,FTP等。
4.HTTP 协议有几种和服务器交互的方法
客户端向服务器发请求的方法有以下几种:
GET:最常用方法,用于客户端请求服务器响应某个资源
HEAD:和get方法类似,但用head后服务器的响应没有资源内容,只有资源的一些信息。主要用途:在不获取资源内容的情况下获取资源的相关信息(资源类型,大小)即响应头。通过状态码查询资源是否存在。通过查看首部,确认资源是否已被修改
POST:用于向服务器发送数据,通常用来支持html表单,将表单中的数据发送到服务器
PUT:用于将某个资源放入服务器,post是向服务器提交信息,put是提交资源(服务器未必支持)
DELETE:发送请求删除服务器上的资源(服务器未必支持)
OPTIONS:请求服务器返回服务器上可用的方法
5.状态码200,301, 304,403,404,500,503分别代表什么意思
1~199系列 信息 接受到请求,继续处理
200~299系列 表示成功 操作成功的接受,理解和接受
300~399系列 表示重定向 为了完成请求,必须采取进一步措施
400~499系列 表示客户端错误 请求的语法有错误或不能满足客户端需求
500~599系列 表示服务端错误 服务器无法完成明显有效的请求
常用的statu code
200 服务器成功返回请求的内容
301 永久重定向,所请求资源永久性移动到新位置,下次如果再有这个资源的请求都应该使用本响应返回的若干个URI之一
304 所请求内容无变化,直接在本地缓存中查找所请求的内容
403 服务器理解该请求,但拒绝这次请求,一般是无权限访问
404 请求内容服务器端未找到
500 服务器遇到意外错误,无法完成客户请求
503 临时维护或服务器超载,无法处理请求
6.报文有哪几部分组成?
http报文是http应用程序之间传送的数据块,数据块以文本形式的元信息开头,描述报文的内容及含义,后面跟着可选的数据部分。报文分请求报文,响应报文。报文的组成分四部分组成
请求报文:
请求起始行(请求方法get/post,请求资源路径,协议版本)get /0606/001.html HTTP/1.1
请求头key:value(要包含请求头主体长度content-length:123)
回车空行
请求体(使用不同方法时,不一定有请求体内容)
响应报文:
响应起始行(协议版本 状态码 状态描述)
响应头key:value(要包含响应体主体长度content-length:123,content-type:xxx)
回车空行
响应体
请求/响应主体长度(使用不同方法时,不一定有长度,比如使用get时没请求体所以就没主体长度)。主体长度告知浏览器/服务器接收到多少个字符算结束,与下面请求体分割开。
7.请求头的格式和作用是什么?给个范例截图说明
请求头的作用是,通过key:value一系列的属性描述所要请求的内容,以告知浏览器应该如何响应。
8.首部的格式和作用是什么?给个范例截图说明
首部包括:普通首部(General)、请求首部(Request Headers)、响应首部(Response Headers)、实体首部(Entity header)。
普通首部:请求报文和响应报文两方都会使用的首部。
请求首部:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
响应首部:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
实体首部:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。
9.主体的作用是什么?给个范例
主体是与客户端与服务器端通信所传输的数据。请求主体携带发送给服务器端请求内容,响应主体携带返回给客户端的内容。
10.简述浏览器缓存是如何控制的
11.下图各个参数是什么意思
图中内容包含普通首部(General)、请求首部(Request Headers)、响应首部(Response Headers)
Genneral(普通首部)
request URL:请求资源的URL路径
request method:请求使用的方法
status code:响应状态码及描述
remote address:请求的服务器的IP及端口
response headers(响应首部)
connection:keep-alive 响应的连接状态为保持链路连接
Content-Length:12 响应内容长度(字节)
Content-Type:json 响应体内容格式,这里是json格式
data:该响应报文创建日期和时间
server:服务器版本信息
x-powered-by:服务器使用的技术
request headers(请求首部)
accept:/客户端能处理的响应内容格式,这里是所有格式
Accept-Encoding:客户端能处理的响应内容编码格式
Accept-Language:客户端能处理的语言种类和优先级,默认权重值q为1,这里优先考虑zh-CN。
connection:keep-alive 请求的连接状态为保持链路连接
content-length:56 请求体内容长度(字节),这里为56个字节
Content-Type:请求体的内容格式
cookie:缓存信息
Host:告知服务器请求的主机地址
Origin:告知服务器请求的源地址。
Referer:告知服务器请求的原始资源的URI。
User-Agent:客户端使用的操作系统和浏览器的名称和版本
X-Requsted-With:xmlhttprequest 表示使用的是Ajax异步请求。
Form Data:向服务器提交的表单数据
本文版权归本人和饥人谷所有,转载请注明来源。