`
moneyinto
  • 浏览: 33849 次
  • 性别: Icon_minigender_1
  • 来自: 东台
社区版块
存档分类
最新评论

web服务器访问流程

阅读更多


一.DNS解析

 

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。

DNS是域名和IP地址相互映射的一个数据库。采用分布式,层次数据库,没有一台DNS服务器具有因特网上所有主机的映射关系,映射分布在所有的DNS服务器上。

 

DNS服务器分为四种类型:

   *根域名服务器(13个根域名服务器)

   *顶级域名服务器(负责顶级域名和所有国家的顶级域名)

   *权限域名服务器(负责一个区的域名服务器)

   *本地域名服务器(起到代理作用,一般像一个大学都有自己的本地域名服务器)

 

DNS是用户可以方便的访问网络,不需要记繁琐的IP地址。

DNS的解析查询方式有两种:迭代查询和递归查询。

 

第一种查询方式:迭代查询

以www.baidu.com为例:

   ·  用户主机向本地服务器A发送查询请求;

   ·  如果本地服务器A上有baidu的记录,则直接将baidu对应的IP返回给用户主机;

   ·  如果本地服务器A上没有记录,则向根域名服务器B发送查询请求;

   ·  根域名服务器B把负责com域的域名服务器C的IP地址返回给本地服务器A;

   ·  A再向C发送查询请求,获得负责baidu.com域的域名服务器D的IP地址;

   ·  A再向D发送查询请求,获得www.baidu.com对应的IP地址;

   ·  A将获得的IP地址返回给用户主机完成域名的解析。

第二种查询方式:递归查询

以www.baidu.com为例:

   ·  用户主机向本地服务器A发送查询请求;

   ·  如果本地服务器A上有baidu的记录,则直接将baidu对应的IP返回给用户主机;

   ·  如果本地服务器A上没有记录,则向根域名服务器B发送查询请求;

   ·  根域名服务器B向负责com域的域名服务器C发送请求;

   ·  C再向负责baidu.com域的域名服务器D发送查询请求;

   ·  D再返回给服务器C,www.baidu.com对应的IP地址,C返回给B,B返回给A;

   ·  A将获得的IP地址返回给用户主机完成域名的解析。

 

迭代查询和递归查询:

用户主机向本地服务器的查询一般都是用递归查询;而本地服务器的查询通常都是采用迭代查询,递归查询很少使用,对于流量比较大的13台根域名服务器如果对每个解析请求都代为查询的话,将会消耗极大的服务器的资源,很容易导致服务器崩溃。

 

 

 二.与服务器建立TCP连接

 

建立TCP连接需要用“三次握手”。

假设有客户A和服务器B,此时两者的TCP进程处于“CLOSED”状态。

   ·  A主动打开,A的TCP向B发送连接请求报文段,其首部的同步位SYN=1,并选择序号seq=x,表明传送数据的第一个数据字节的序号为x;

   ·  B的TCP收到连接请求报文段后,如同意,则返回确认,确认报文段中SYN=1,ACK=1,确认号ack=x+1,自己选择的序号seq=y,被动打开;

   ·  A收到此报文段后向B给出确认,其ACK=1,确认号ack=y+1,A的TCP通知上层应用进程,连接已经建立,B的TCP收到主机A的确认后,也通知其上层应用进程,连接已经建立;

 

 

三.客户端与服务器传送数据

 

在“最后一次握手”后,客户端向服务端开始传输数据,通信双方都有发送和接受两个窗口,双方分别有发送缓冲区和接受缓冲区,应用程序将数据提交给发送缓冲区,由TCP协议来控制,接收方将数据放到接受缓冲区,高层应用在合适的时间到缓冲区提取数据。

 

 

四.HTTP与TCP之间的关系

 

TCP:传输控制协议。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”

 

HTTP:超文本传输协议。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
 

 

五.Http get请求过程

 

在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)。

 

Http的get方法请求从指定的资源获取数据。

GET提交,请求的数据会附在URL之后(就是把数据放置在请求行(request line)中),以?分割URL和传输数据,多个参数用&连接。Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,所有非ASCII字符均需要编码再传输。

 

例子:

 

请求

 

GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
Host: api.efxnow.com

 

回复

 

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length


<--文档内容省略-->(注:文档内容与上面有一个空行)

 

六.Http post请求过程

 

Http的post方法向指定的资源提交要被处理的数据。

POST提交:把提交的数据放置在是HTTP包的包体中。因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变。

 

例子:

 

请求

 

POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1
Host: api.efxnow.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
<--此处空一行-->
UserID=string&PWD=string&OrderConfirmation=string

 

回复

 

Host: api.efxnow.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<--此处空一行-->

<--文档内容省略-->

 

 

七.Nginx

 

Nginx是一款轻量级夸平台的Web服务器。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。

其特点是占有内存少,并发能力强,安装简单,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

Nginx由内核和模块组成,内核设计简洁微小,完成工作简单便捷,仅通过查找配置文件将客户端请求映射到location block(location是Nginx配置中的一个指令,用于URL匹配),在location中配置的每个指令将会启动不同的模块完成相应的工作。

 

八.Nginx工作流程

 

Nginx接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个location可以复用同一个模块)。handler模块负责处理请求,完成响应内容的生成,而filter模块对响应内容进行处理。

 

分享到:
评论

相关推荐

    web服务器处理流程图

    web服务器处理流程图,

    HTTP与HTTP协作的Web服务器访问流程图解

    一台web服务器可搭建多个独立域名的web网站,也可作为通信路径上的中转服务器提升传输效率。 一、用单台虚拟主机实现多个域名 HTTP/1.1规范允许一台HTTP服务器搭建多个web站点。 即使物理层面只有一台服务器,但只要...

    易语言简易WEB服务器源码.rar

    易语言支持多种编程模式,包括事件驱动、过程式、面向对象等,因此,通过这个标签我们可以推断,这款简易Web服务器可能使用了易语言的基础语法和特性,如命令调用、变量操作、流程控制等。 【压缩包子文件的文件...

    WEB服务器的建立

    【实验原理】WEB服务器的工作流程包括三个主要步骤:1)客户端通过Web浏览器向服务器发送HTTP请求,请求指定的网页;2)服务器接收到请求后,在其配置的网站目录中查找对应的网页文件;3)服务器找到文件后,将内容...

    简易个人WEB服务器

    【简易个人WEB服务器】 在数字化时代,个人网页和网站已经成为表达自我、分享信息的重要平台。然而,对于非专业人员来说,搭建一个Web服务器可能显得既复杂又费时。"简易个人WEB服务器"软件解决了这个问题,它提供...

    Android客户端远程登录web服务器数据交换实例

    在Android开发中,实现客户端与Web服务器的数据交换是一项常见的任务,尤其在移动应用需要与远程数据库交互时。本文将深入探讨“Android客户端远程登录Web服务器数据交换实例”,讲解如何使用MySQL数据库、JSON数据...

    web服务器编程代码

    Web服务器的主要职责是接收HTTP请求并返回HTTP响应,使得用户可以通过浏览器访问网页。在这个场景下,提到的"web服务器编程代码"包含三个关键文件:HttpServer.java、Request.java和Response.java。这通常意味着一个...

    Windows Server 2003 搭建Web服务器

    设置默认文档能简化用户访问流程。 在实际操作中,搭建Web服务器还需要考虑安全配置,如设置权限、防火墙规则、SSL证书等,以确保服务的安全性和稳定性。此外,对于大型网站,可能还需要进行性能优化、负载均衡和...

    Web服务器的组建与.ppt

    9. **NAT穿透**:通过NAT(网络地址转换)技术,使内网的Web服务器可以被外部网络访问。 **Apache服务器的搭建** Apache是开源的Web服务器软件,以其稳定性和可扩展性而著名。其配置过程包括: 1. **下载与安装...

    通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端

    本项目涉及的核心知识点是构建一个完整的登录系统,包括Android客户端、Web服务器以及MySQL数据库。以下将详细阐述每个环节的关键技术和步骤。 首先,**Android客户端**是用户与应用程序交互的界面。在这里,我们...

    个人WEB服务器.RAR

    同时,学习如何配置防火墙、安装SSL证书以实现HTTPS加密访问,以及设置合适的权限管理,都是使用个人WEB服务器时不可或缺的知识点。最后,保持软件更新,安装必要的安全补丁,以确保服务器的安全运行。

    Web服务器的配置与管理.pptx

    综上所述,Web服务器的配置与管理涉及多个方面,包括选择合适的服务器软件、安装和配置服务、理解工作流程、以及通过管理工具进行日常维护和故障排查。对于运维人员来说,掌握这些技能是确保网站正常运行和服务质量...

    一个基于HTTP的独立web服务器

    在IT领域,Web服务器是运行并响应HTTP(超文本传输协议)请求的应用程序,它为用户提供通过互联网访问网页的服务。本项目提供了一个用Java编写的独立Web服务器,这使得开发者可以更深入地理解Web服务器的工作原理,...

    通用web服务器(支持IOCP)

    这款Web服务器的特色在于其几乎无需配置的特性,这意味着用户几乎可以即插即用,对于静态网页访问和文件下载等基本需求,部署和使用非常简便。开发者只需关注核心业务逻辑,而无需在服务器配置上花费过多时间。 在...

    WEB 服务器配置安全规范

    【WEB服务器配置安全规范】 在IT领域,Web服务器的安全性是至关重要的,因为它们承载着网站和服务,直接面对互联网上的各种潜在威胁。Apache服务器作为最广泛使用的Web服务器之一,尽管在设计时考虑到了安全性,但...

    通过Android客户端访问web服务器,实现一个登录功能

    在Android应用开发中,实现一个通过客户端访问web服务器的登录功能是常见的需求。这个过程涉及到客户端(Android应用)、服务端以及数据库三个主要部分。以下将详细介绍这个过程中的关键知识点: 1. **Android...

    WEB服务器配置安全规范[总结].pdf

    1. 正确维护和配置 Apache 服务器:正确维护和配置 Apache WEB 服务器是非常重要的,管理员需要注意一些问题,如 Apache 服务器配置文件、目录安全认证、访问控制和密码保护等。 2. Apache 服务器配置文件:Apache ...

    基于Vxworks嵌入式web服务器的远程实时图形显示及控制系统

    2. **远程实时显示控制系统构成图**:系统操作运行图展示了用户通过Web浏览器访问PC104板上的Web服务器,以及Applet小程序的运行和与服务端通讯的过程。 3. **系统流程**: - 用户通过Web浏览器访问PC104板上的Web...

    web服务器tomcat7.0

    标题"web服务器tomcat7.0"指的是Apache Tomcat,一个流行的开源Web服务器,专用于运行Java Servlet和JavaServer Pages(JSP)技术。这里特指的是Tomcat的7.0版本。 描述中提到的"tomcat 使用jsp开发web的web服务器...

Global site tag (gtag.js) - Google Analytics