作业题目:(由于原图太大,将其重画了一下,大概是这样,有不对的地方还望指正)
![]() |
问题: 1.DNS解析是什么,简述步骤1,2。 2.简述如何与服务器建立TCP连接。 3.简述客户端与服务器传送数据。 4.Http协议与TCP之间的关系。 5.简述Http get请求过程,并举例。 6.简述Http post请求过程,并举例。 7.nginx是什么? 8.简述nginx的工作流程。 9.简单的将图中内容填充。 |
解答:
问题一:DNS解析是什么,简述步骤1,2。
DNS(domain name server),见名知意,DNS解析是指域名解析,即将网站的域名通过域名服务器解析成相应的ip地址。 具体过程: 在浏览器中输入www.yammar.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射,如果有,就先调用这个IP地址映射,完成域名解析。若没有 ,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 如果没有相应的网址映射关系,则会查找本地服务器,即TCP/ip参数中设置的首选DNS服务器。此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析。 如果仍没找到,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.yammar.com主机。如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管怎样,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 步骤1是客户端向服务器发出dns请求。 步骤2是服务器向客户端回送ip响应。 |
问题二:简述如何与服务器建立TCP连接。
TCP是可靠传输,需经过三次握手才能建立连接,即,客户端向服务器发送请求,服务器收到请求后给客户端回复一个确认,客户端收到确认后再给服务器一个确认的确认,到此完成三次握手,建立了TCP连接。 |
问题三:简述客户端与服务器传送数据。
首先是客户端向服务器请求tcp连接,服务器给客户端回复确认后,客户端在给服务器确认的确认时捎带着http请求报文,服务器在给客户端的http响应报文中捎带着要浏览的数据。 |
问题四:Http协议与TCP之间的关系。
HTTP协议是建立在TCP协议之上的一种应用。 |
问题五:简述Http get请求过程,并举例。
get请求用于从服务器上获取资源,是默认的请求方法,(若你在浏览器的地址栏里键入了一个URL,或单击了一个链接,那么你的请求将作为一个GET请求发送给服务器)。当客户端向服务器发送http请求时可以捎带上要请求的数据,服务器在响应http请求时可以向客户端返回要访问的数据。 HTTP请求消息包括:请求行,请求首部,有时还有请求主体。 请求行以请求方法名开始,后面是资源标识符,以及浏览器所使用的协议版本。 如:GET/index.html HTTP/1.1 请求首部提供了服务器在处理请求的过程中可能需要的附加信息。 如:一个有效的HTTP请求消息示例: GET/index.html HTTP/1.1 (请求行) HOST(请求首部):www.gefionsoftware.com(附加消息) User-Agent:MoZilla/4.5 [en] (winNT:(I) Accept:p_w_picpath/gif,p_w_picpath/jpeg,p_w_picpath/pjpeg,p_w_picpath/png,*/* Accep-Langeuage:en Accept-Charset :iso-8859-1,*,UTF-8 (……请求主体) |
问题六:简述Http post请求过程,并举例。
post消息与get消息很相似,post请求是客户端向服务器发送http请求时捎带上要上传到服务器处理的数据。 它也包括三个部分一:状态行,应答首部,还有可能出现的应答主体。 如: HTTP/1.1 200 OK(状态行) Last-Modified(应答首部) : Mon,20 Dec 2001 23 :26 :42 GMT Date:Tue,11 Jan 2002 20:53:12 GMT Status:200 Content-Type: Text/html Servlet-Engine: Content-Length:59 <html>(应答主体) …… </html> |
问题七:nginx是什么?
Nginx是一个跨平台的Web服务器,可运行在Linux、FreeBSD、Solaris、AIX、Mac OS、Windows等操作系统上。相比Apache等,占有内存少,并发能力强,安装简单,bugs少。 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块。用户根据自己的需要开发的模块都属于第三方模块。 |
问题八:简述nginx的工作流程。
启动Nginx后,Nginx的模块被自动加载,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个本地块中,在本地块中所配置的各个指令则会启动不同的模块去完成工作 。 |
问题九:简单的将图中内容填充。
(域名)服务器 端口:(80) nginx的工作原理图: |