ALBB面试题目自解一

题目:简述Http协议,越多越好。(参考自:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

1、OSI参考模型:OSI即Open System Interconnect的缩写,该模型将网络通信分为7层:物理层,数据链路层,网络层,传输层,会话层,表示层以及应用层。

2、Http协议与Tcp协议的关系:Http协议属于应用层的一种协议,Tcp属于的传输层的一个协议。Http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常常基于Tcp的连接方式。

3、(番外)Tcp协议与Udp协议的区别:Tcp(传输控制协议)是基于连接的协议,也就是说,在正式首发数据之前,必须和对方建立可靠的连接。一个Tcp连接必须经过三次“对话”才能建立起来,经过三次对话猴子猴,主机与主机之间才正式发送和接收数据。而Udp(User Data Protocol用户数据报协议)是与Tcp相对应的协议,它是面向非连接的协议。它不与对方建立连接而是直接就把数据发送过去。Udp适用于一次只传送少量数据,对可靠性要求不高的应用环境。比如,我们常常使用的ping命令的原理就是向对方的主机发送Udp数据包(在无法确定是否能建立连接的时候也常用Udp检测)

综上,Tcp面向连接、可靠、适用于传输大量数据、速度比较慢的通信协议;Udp面向非连接、不可靠、传输少量的数据、速度快的通信协议。

4、Http协议的主要特点:1)支持客户端/服务器模式2)简单快速:客户端向服务器请求服务的时候,只需要传送请求方法和路径,请求的方法常用的有GET/HEAD/POST。3)灵活:Http协议允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。4)无连接,无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求并收到客户的应答之后即断开连接,采用这种方式可以节省传输时间5)无状态:无状态是指协议对于事物处理没有记忆的能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重新传送,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就比较快。

5、HTTP URL

URL是特殊类型的URI(URL绝对地址,URI相对地址)。HTTP URL的格式如:http://host[":"port][abs_path]。

6、Http请求:

Http请求由三部分组成,分别是:请求行、消息报头、请求正文

1)请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF(请求方法+统一资源标识符+HTTP协议版本+回车和换行)

请求方法:GET/POST 在Request-URI所标识的资源后面附加新的数据

/HEAD请求获取由Request-URI所标识的资源的响应消息报头/

PUT请求服务器存储一个资源,并用Request-URI作为其标识

DELETE    TRACE请求服务器回送收到的请求信息,主要用于测试或者诊断

CONNECT 保留将来使用

OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求。

比如GET /form.html HTTP/1.1 (GRLF)

POST方法哟球被请求服务器接受附在请求后面的数据,常常用于提交表单。
比如:eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF)         //该CRLF表示消息报头已经结束,在此之前为消息报头
user=jeffrey&pwd=1234  //此行以下为提交的数据
此外:HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部包含的信息与通过GET所得到的信息是相同的。利用这个方法不必传输整个资源文件内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问以及最近是否更新。
7、HTTP协议:响应
在接收和解释请求消息之后,服务器就返回一个HTTP响应的消息。

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文。

状态行:状态代码(此处略)

响应报头后述。响应正文就是服务器返回的资源的内容。

8、报头

HTTP消息由客户端到服务器的请求和服务器到客户端的相应组成。请求信息和响应信息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行)、消息报头(可选),空行(只有CRLF)的行,消息正文(可选)组成。

HTTP消息报头包括了:普通报头、响应报头、请求报头、实体报头。每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。

1)普通报头:在普通报头中,有少数报头域用于所有的请求和响应消息,但是并不用于被传输的实体,只用于传输的消息。

比如:Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制)。请求时的缓存指令包括了no-cache.no-store.max-age.min-fresh.max-stale.only-if-cached

响应时的缓存指令包括了public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage

Date普通报头域表示消息产生的日期和时间

Connection普通报头域允许发送指定连接的选项,例如指定连接是连续,或者指定close选项,通知服务器,在响应完成后,关闭连接。

2)请求报头:

Accept请求报头域:用于指定客户端接受哪些类型的信息,比如Accept: image/gif表明客户端希望接受GIF图像格式的资源。Accept: text/html等等

Accept-Charset请求报头域用于指定客户端接受的字符集。如果在请求消息中没有设置这个域那么缺省地认为是任何字符集都可以接受。

Accept-Encoding/Accept-Language

Authorization请求报头域主要用于证明客户端有权查看某个资源,当浏览器访问一个页面的时候如果收到服务器的响应代码为401(未授权)可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。

Host请求报头域主要用于指定被请求资源的Internet主机和端口号,这常常从HTTP URL中提取出来。

User-Agent请求报头域允许客户端将它的操作系统、浏览器和其他属性告诉服务器。如果我们自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器就无法得知我们的信息了。

3)响应报头

响应报头允许服务器传递不能放在状态行的附加响应信息,以及服务器的信息和对Request-URL所标识的资源进行下一步访问的信息。常用的响应报头:

Location响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。

Server响应报头域包含了服务器用来处理请求的软件纤细,与User-Agent请求报头域是相对应的。

4)实体报头

请求和响应消息都可以传送一个实体,一个实体由实体报头域和实体正文组成,但并不是说实体报头域要和实体正文在一起发送,可以只发送实体报头域,实体报头定义了关于实体正文和请求所标识的资源的原信息。

Content-Encoding/Content-Language

Content-Length实体报头域用于指明实体正文的长度,以字节方式存储的十进制数字来表示。

Content-Type实体报头域用于指明发送给接受者的实体正文的额媒体类型。

Last-Modified实体报头域用于指示资源的最后修改日期和时间。Expires实体报头域给出响应过期的日期和时间,为了让代理服务器或者浏览器在一段时间以后更新缓存中的页面,我们可以使用Expires实体报头域指定页面过期的时间。

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现个带有动画效果的“回到顶部”功能。Vue.js 是款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 以下是简化后的内容: 程序集变量 计数器:整数型 文本发送计次:整数型 子程序 __启动窗口_创建完毕 _手动发送数据_被单击 停止发送 发送预处理 判断端口是否启动成功,失败则提示并返回 根据组合框选择的进制类型,将编辑框内容转换后发送 发送失败则提示并返回 进制转换(被转换文本,被转换进制,转换的进制) 检查进制范围,错误则返回提示 规范参数,逐字符检查是否符合进制要求,不符合则返回错误提示 若进制相同直接返回原文本 否则进行进制转换并返回结果 _退出_被单击销毁 _组合框_端口号_列表项被选择 停止发送 设置端口号 _组合框_波特率_列表项被选择 停止发送 设置波特率 _组合框_数据位_列表项被选择 停止发送 设置数据位数 _组合框_校验_列表项被选择 停止发送 设置奇偶校验方案 _组合框_停止位_列表项被选择 停止发送 设置停止位数 发送预处理 停止发送 设置波特率、端口号、数据位数、奇偶校验方案、停止位数 根据奇偶校验方案设置校验标志 _选择框_DTR_被单击 根据选中状态设置信号操作 _选择框_RTS_被单击 根据选中状态设置信号操作 _选择框_Break_被单击 根据选中状态设置信号操作 _编辑框_发送周期_内容被改变 若时钟标志选中,设置时钟周期 _选择框_时钟标志_被单击 若选中,设置发送方式为时钟模式,启动发送并设置时钟周期 否则,停止发送,设置时钟周期为0 _组合框_发送方式_列表项被选择 根据选择设置时钟标志和时钟周期 _端口_发送数据_收到信号 _端口_接收数据_收到信号 _端口_接收数据_数据到达 根据接收数据的进制选择,将数据转换后显示在编辑框中 _时钟1_周期事件 根据发送方式和进制选择,周期性发送数据 打开并读入文件 打开文件,读取内容到编辑框 _打开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值