美团2015年校园招聘部分笔试题

来源:互联网 发布:coreldraw mac中文版 编辑:程序博客网 时间:2024/04/19 14:28

2015年美团校园招聘,技术类笔试题

考的网络知识:

1 dns请求的流程【1】

DNS 查询以各种不同的方式进行解析。有时,客户端也可使用从先前的查询获得的缓存信息在本地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询。DNS 服务器也可代表请求客户端查询或联系其他 DNS 服务器,以便完全解析该名称,并随后将应答返回至客户端。这个过程称为递归。

另外,客户端自己也可尝试联系其他的 DNS 服务器来解析名称。当客户端执行此操作时,它会根据来自服务器的参考答案,使用其他的独立查询。这个过程称为迭代。

总之,DNS 查询进程分两部分进行:

  • 名称查询从客户端计算机开始,并传输至解析程序即 DNS 客户端服务程序进行解析。

  • 不能在本地解析查询时,可根据需要查询 DNS 服务器来解析名称。
之后服务器向客户端返回ip响应。

具体的过程如下:

第 1 部分:本地解析程序

下图显示了完整的 DNS 查询进程的概况。

DNS 查询的工作方式

如查询过程的初始步骤所示,DNS 域名由本机的程序使用。该请求随后传输至 DNS 客户端服务,以便使用本地缓存信息进行解析。如果可以解析查询的名称,则应答该查询,该进程完成。

本地解析程序的缓存可包括从两个可能的来源获取的名称信息:

  • 如果在本地配置主机文件,则来自该文件的任何主机名称到地址的映射,在 DNS 客户端服务启动时将预先加载到缓存中。

  • 从以前的 DNS 查询应答的响应中获取的资源记录,将被添加至缓存并保留一段时间。

如果此查询与缓存中的项目不匹配,则解析过程继续进行,客户端查询 DNS 服务器来解析名称。

第 2 部分:查询 DNS 服务器

如前面的图中所示,客户端将查询首选 DNS 服务器。在此进程的初始客户端/服务器查询部分中使用的实际服务器选自全局列表。有关如何编译和更新该全局列表的详细信息,请参阅客户端功能。

当 DNS 服务器接收到查询时,首先检查它能否根据在服务器的本地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则使用该信息来解析查询的名称,服务器作出权威性的应答。

如果区域信息中没有查询的名称,则服务器检查它能否通过来自先前查询的本地缓存信息来解析该名称。如果从中发现匹配的信息,则服务器使用该信息应答查询。接着,如果首选服务器可使用来自其缓存的完全匹配响应来应答发出请求的客户端,则此次查询完成。

如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询进程可继续进行,使用递归来完全解析名称。这涉及来自其他 DNS 服务器的支持,以帮助解析名称。在默认情况下,DNS 客户端服务要求服务器在返回应答之前,使用递归过程来代表客户端完全解析名称。在大多数情况下,DNS 服务器默认配置为支持递归过程,如下图所示。

递归的工作方式

为了使 DNS 服务器正确执行递归过程,首先需要使用 DNS 域命名空间内有关其他 DNS 服务器的一些有用的联系信息。该信息以根提示的形式提供,它是一个初始资源记录列表,DNS 服务可利用这些记录定位其他 DNS 服务器,它们对 DNS 域命名空间树的根具有绝对控制权。根服务器对于 DNS 域命名空间树中的根域和顶级域具有绝对控制权。详细信息,请参阅更新根提示。

使用根提示查找根服务器,DNS 服务器可完成递归的使用。理论上,该进程将启用 DNS 服务器,以定位那些对域命名空间树的任何级别使用的任何其他 DNS 域名具有绝对控制权的服务器。

例如,当客户端查询单个 DNS 服务器时,考虑使用递归过程来定位名称 host-b.example.microsoft.com。在 DNS 服务器和客户端首次启动,并且没有本地缓存信息可帮助解析名称查询时,就会进行上述过程。根据其配置的区域,它假定由客户端查询的名称是域名,该服务器在本地不包含有关该域名的信息。

首先,首选服务器分析全名并确定对于顶级域“com”具有绝对控制权的服务器的位置。随后,对“com”DNS 服务器使用迭代查询,以获取“microsoft.com”服务器的参考信息。随后,参考应答从“microsoft.com”服务器传送到“example.microsoft.com”的 DNS 服务器。

最后,与服务器 example.microsoft.com 建立联系。因为该服务器包括作为其配置区域一部分的查询名称,所以它向启动递归的源服务器作出权威性地应答。当源服务器接收到表明已获得对请求查询的权威性应答的响应时,它将此应答转发给发出请求的客户端,这样递归查询过程就完成了。

注意

  • 如果查询的最终应答太长而不能在一个 UDP 消息数据包中发送和解析,则 DNS 服务器可以在 TCP 端口 53 [dns的端口号]上发送故障转移响应消息,以便在 TCP 连接会话中完全应答客户端。
  • 默认情况下,在执行递归查询并联系其他 DNS 服务器时,DNS 服务器使用若干默认的时间设置。它们是: 
  • 3 秒的递归重试间隔。这是 DNS 服务在递归查询期间重试查询之前等候的时间长度。
  • 15 秒的递归超时间隔。这是 DNS 服务在重试的递归查询失败之前等候的时间长度。

2浏览器发出和接收到的HTTP报文头是怎样的?[3]

HTTP请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行请求数据4个部分组成,下图给出了请求报文的一般格式。

or

<request-line>

<headers>

<blank line>

[<request-body>

 

1.请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

前3种方法比较常见。

2 请求头

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

HTTP响应报文

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

如下所示,HTTP响应的格式与请求的格式十分类似:

<status-line>

<headers>

<blank line>

[<response-body>]

 正如你所见,在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。 

 

状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  • 1xx:指示信息--表示请求已接收,继续处理。
  • 2xx:成功--表示请求已被成功接收、理解、接受。
  • 3xx:重定向--要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误--请求有语法错误或请求无法实现。
  • 5xx:服务器端错误--服务器未能实现合法的请求。

常见状态代码、状态描述的说明如下。

  • 200 OK:客户端请求成功。
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。






【1】

http://msdn.microsoft.com/zh-cn/library/cc775637(v=ws.10).aspx

[2]

http://www.lyjh.tyc.edu.tw/admin/ports.htm

[3]

http://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.html

0 0
原创粉丝点击