精华内容
下载资源
问答
  • web服务器的工作原理

    2019-09-26 14:09:29
    Web服务器的工作原理可以简单地归纳为: 客户机通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态...

    Web服务器的工作原理可以简单地归纳为:

    1. 客户机通过TCP/IP协议建立到服务器的TCP连接
    2. 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档
    3. 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语
      言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端
    4. 客户机与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果
    展开全文
  • Web服务器的工作原理

    2014-07-18 10:51:24
    Web服务器的工作原理可以简单地归纳为: 客户机通过TCP/IP协议建立到服务器的TCP连接客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言...

    Web服务器的工作原理可以简单地归纳为:

    • 客户机通过TCP/IP协议建立到服务器的TCP连接
    • 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档
    • 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端
    • 客户机与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果

    一个简单的HTTP事务就是这样实现的,看起来很复杂,原理其实是挺简单的。需要注意的是客户机与服务器之间的通信是非持久连接的,也就是当服务器发送了应答后就与客户机断开连接,等待下一次请求。


    也可以解释为:
    我去图书馆借书,首先我有图书证可以进入到图书馆中(相当于可以进行tcp/ip协议,可以进行通信),进入之后我问<XXX武功秘籍>有木有,管理员告诉我有,在2层3排16格,(DNS解析域名,返回IP地址)我收到管理员告诉我的信息(IP地址),我就直接去这个位置找这本<武功秘籍>(服务器返回的内容),拿到书我走了。这个过程就完事了,我找个角落就可以独自修炼了。。。。


    展开全文
  • Web工作原理

    2019-06-25 11:59:38
    DNS就是这样一位“翻译官”,它基本工作原理可用下图来表示 请求web服务器过程 客户机通过TCP/IP协议建立到服务器TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里资源文档 服务器向客户机...

    上网过程

     

    DNS工作原理

    DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示

     

    请求web服务器过程

    客户机通过TCP/IP协议建立到服务器的TCP连接
    客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档
    服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端
    客户机与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果

     

    http协议详解

    HTTP协议是Web工作的核心,所以要了解清楚Web的工作方式就需要详细的了解清楚HTTP是怎么样工作的。

    HTTP是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数据的协议,它建立在TCP协议之上,一般采用TCP的80端口。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。在HTTP中,客户端总是通过建立一个连接与发送一个HTTP请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回调连接。客户端与服务器端都可以提前中断一个连接。例如,当浏览器下载一个文件时,你可以通过点击“停止”键来中断文件的下载,关闭与服务器的HTTP连接。

    HTTP协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对HTTP服务器来说,它并不知道这两个请求是否来自同一个客户端。为了解决这个问题, Web程序引入了Cookie机制来维护连接的可持续状态。

    HTTP协议是建立在TCP协议之上的,因此TCP攻击一样会影响HTTP的通讯,例如比较常见的一些攻击:SYN Flood是当前最流行的DoS(拒绝服务攻击)与Ddos(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
     

    http请求包

    Request包分为3部分,第一部分叫Request line(请求行), 第二部分叫Request header(请求头),第三部分是body(主体)。header和body之间有个空行,请求包的例子所示:

    GET /domains/example/ HTTP/1.1      //请求行: 请求方法 请求URI HTTP协议/协议版本
    Host:www.iana.org               //服务端的主机名
    User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4          //浏览器信息
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  //客户端能接收的mine
    Accept-Encoding:gzip,deflate,sdch       //是否支持流压缩
    Accept-Charset:UTF-8,*;q=0.5        //客户端字符编码集
    //空行,用于分割请求头和消息体
    //消息体,请求资源参数,例如POST传递的参数

    HTTP协议定义了很多与服务器交互的请求方法,最基本的有4种,分别是GET,POST,PUT,DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。

    http响应包

    HTTP/1.1 200 OK                     //状态行
    Server: nginx/1.0.8                 //服务器使用的WEB软件名及版本
    Date:Date: Tue, 30 Oct 2012 04:14:25 GMT        //发送时间
    Content-Type: text/html             //服务器发送信息的类型
    Transfer-Encoding: chunked          //表示发送HTTP包是分段发的
    Connection: keep-alive              //保持连接状态
    Content-Length: 90                  //主体内容长度
    //空行 用来分割消息头和主体
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"... //消息体

    Response包中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

    状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response。HTTP/1.1协议中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

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

     

    展开全文
  • Udev 基本工作原理

    2013-09-18 18:50:57
    着重分析其基本工作原理连同在使用中碰到一些README文档没有明确说明问题。 1 基本概念 udev文档系统是针对2.6内核,提供一个基于用户空间的动态设备节点管理和命名解决方案,网上关于为什么要使用udev文档...
    Udev 基本工作原理  
      Udev相关的文章很多,本文的主要目的不是提供一个完整的教学文档,对其使用,只是给出网上现有的主要资源。着重分析其基本工作原理连同在使用中碰到的一些README文档没有明确说明的问题。
    1         基本概念
    udev文档系统是针对2.6内核,提供一个基于用户空间的动态设备节点管理和命名的解决方案,网上关于为什么要使用udev文档系统,udev文档系统和devfs文档系统的比较,等等的文章已很多了,假如您想了解这方面的内容,请直接搜索相关的关键字。
    udev的官方网址:
    http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
    src code的下载地址:
    http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/
    此外,关于udev的rules规则的撰写,网上也有很多文章,假如要获得最准确的版本,能够在src
    code的代码树里找到writing_udev_rules的帮助文档,这个文档其实没有逐条介绍rules的任何关键字,能够结合man udev
    和 udev自带的一些rules文档来理解如何撰写您所需要的规则文档。
    2         安装和启动
    2.1        安装
    Udev的代码树里的版本很多,我下载的最新的版本是udev-117,配合2.6.21版本的内核能够正常使用。网上很多文章介绍的可能都是稍微早期一些的版本,有些步骤包括udev的README文档似乎描述的不是很准确。
    基本上这个版本的udev需要注意的是,安装时只需要udevd,udevadm两个文档,其他必需的包括udevtrigger等只是udevadm的一个符号链接。udevstart不是必需的。当然Udev.conf等配置文档还是相同。
    2.2        启动
    您能够在启动脚本中用udevd –d 参数启动udev文档系统的守护进程,然后使用udevtrigger将buildin的设备驱动的节点创建出来,以后模块插入移除时节点的管理会自动处理。
    能够正常加载udev的前提,基本包括如下操作:
           配置路径变量
          加载sysfs文档系统
          加载一个基于ram的可写的/dev目录(其实,只要提供一个可写的目录即可,目录路径本身也是能够配置的)
        /dev目录下需要有已创建好的 console节点和null节点
    脚本类似:
    # Set the path
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    export PATH
    # mount proc and devpts filesystem
    /bin/mount -a
    mknod /dev/console c 5 1
    mknod /dev/null c 1 3
    /sbin/udevd -d
    /sbin/udevtrigger
    Mount使用的fstab文档类似:
    none                    /tmp                    ramfs   defaults        0 0
    udev                    /dev                    ramfs   defaults        0 0
    none                    /proc                   proc    defaults        0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    当然,您的系统上可能还会需要预先创建一些其他的设备节点,比如串口的ttySx 才能正常启动shell,完成以上脚本的执行,那就要看具体情况了。
    3         使用中的一些问题的思考
    3.1        关于规则的多次匹配
    帮助文档中说一个设备能够被多条规则多次匹配,但是,需要明确的一点是:
    多次匹配只能添加多个Symlink,不能创建多个Name:
    例如:
    KERNEL=="mtdblock4", NAME+="mtdbb4"
    KERNEL=="mtdblock4", NAME+="%k"
    就只会创建 /dev/mtdbb4 而不会创建/dev/mtdblock4
    而类似:
    KERNEL=="mtdblock4", NAME+="mtdbb4"
    KERNEL=="mtdblock4", SYMLINK+="mtdbb4link"
    是能够正常工作的。
    3.2        关于udev.conf的语法
    可能大家会发现,似乎没有什么周详文档描述udev.conf的写法,实际上从udevd的代码里能够看出:
    udev.conf文档里面只会解析这三个参数:
    udev_root 定义udev的目录路径
    udev_rules 定义udev的规则文档的目录路径
    udev_log 定义log的级别
    也许以后会添加一些别的配置参数?
    4         基本工作原理方面的问题
    这部分主要是分析了一下udev的source code,对一些自己关心的问题的理解
    4.1        Udevd如何获取内核的这些模块动态变化的信息
    设备节点的创建,是通过sysfs接口分析dev文档取得设备节点
    号,这个很显而易见。那么udevd是通过什么机制来得知内核里模块的变化情况,如何得知设备的插入移除情况呢?当然是通过hotplug机制了,那
    hotplug又是怎么实现的?或说内核是如何通知用户空间一个事件的发生的呢?
    答案是通过netlink socket通讯,在内核和用户空间之间传递信息。

    核调用kobject_uevent函数发送netlink
    message给用户空间,这部分工作通常无需驱动去自己处理,在统一设备模型里面,在子系统这一层面,已将这部分代码处理好了,包括在设备对应的特定的
    Kobject创建和移除的时候都会发送相应add和remove消息,当然前提是您在内核中配置了hotplug的支持。
    Netlink socket作为一种内核和用户空间的通信方式,不但仅用在hotplug机制中,同样还应用在其他很多真正和网络相关的内核子系统中。
    Udevd通过标准的socket机制,创建socket连接来获取内核广播的uevent事件 并解析这些uevent事件。
    4.2        Udevd如何监控规则文档的变更
    假如内核版本足够新的话,在规则文档发生变化的时候,udev也能够自动的重新应用这些规则,这得益于内核的inotify机制, inotify是一种文档系统的变化通知机制,如文档增加、删除等事件能够立即让用户态得知。
    在udevd中,对inotify和udev的netlink socket文档描述符都进行了select的等待操作。有事件发生以后再进一步处理。
    4.3        Udevtrigger的工作机制?
    运行udevd以后,使用udevtrigger的时候,会把内核中已存在的设备的节点创建出来,那么他是怎么做到这一点的? 分析udevtrigger的代码能够看出:
    udevtrigger通过向/sysfs 文档系统下现有设备的uevent节点写"add"字符串,从而触发uevent事件,使得udevd能够接收到这些事件,并创建buildin的设备驱动的设备节点连同任何已insmod的模块的设备节点。
    所以,我们也能够手工用命令行来模拟这一过程:
    / # echo "add" > /sys/block/mtdblock2/uevent
    / #
    / # UEVENT[178.415520] add      /block/mtdblock2 (block)
    但是,进一步看代码,您会发现,实际上,不管您往uevent里面写什么,都会触发add事件,这个从kernel内部对uevent属性的实现函数能够看出来,默认的实现是:
    static ssize_t store_uevent(struct device *dev, struct device_attribute *attr,
                             const char *buf, size_t count)
    {
           kobject_uevent(&dev->kobj, KOBJ_ADD);
           return count;
    }
    所以不管写的内容是什么,都是触发add操作,真遗憾,我还想通过这个属性实验remove的操作。 不知道这样限制的原因是什么。
    而udevstart的实现方式和udevtrigger就不同了,他基本上是重复实现了udevd里面的机制,通过遍历sysfs,自己完成设备节点的创建,不通过udevd来完成。
    4.4        其他
          udevd创建每一个节点的时候,都会fork出一个新的进程来单独完成这个节点的创建工作。
          Uevent_seqnum 用来标识当前的uevent事件的序号(已产生了多少uevent事件),您能够通过如下操作来查看:
    $ cat /sys/kernel/uevent_seqnum
    2673
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/69947/showart_1149436.html
    展开全文
  • 基于TI公司CORTEX-M3为内核32位单片机lm3s811智能开关型电子负载WORD论文文档+ALTIUM原理图PCB+软件程序源码. 本文提出了一种基于TI公司CORTEX-M3为内核32位单片机智能开关型电子负载方案。本设计以lm3s811...
  • Udev 基本工作原理

    2009-12-21 10:39:00
    Udev 基本工作原理 Udev相关文章很多,本文主要目的不是提供一个完整教学文档,对其使用,只是给出网上现有主要资源。着重分析其基本工作原理连同在使用中碰到一些README文档没有明确说明问题。1 基本...
  • 在Java Web应用中,客户端不仅可以从本地磁盘上打开网页文档,而且还可以通过HTTP网络协议从服务器上获取网页文档。客户端与服务器在具体交互时,首先两者需要建立TCP网络连接,接着客户端按照HT
  • 作者:刘旭晖 colorant@163.com 转载请注明出处...着重分析其基本工作原理以及在使用中遇到一些README文档没有明确说明问题。1基本概念udev文件系统是针对2.6内核,提供一个基于用户空间的动态设...
  • 单页面应用的工作原理 我理解的单页面工作原理是通过浏览器URL的#后面的hash变化就会引起页面变化的特性来把页面分成不同的小模块,然后通过修改hash来让页面展示我们想让看到的内容。 那么为什么hash的不同,为什么...
  • JavaScript工作原理

    千次阅读 2012-09-10 17:25:32
    HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新Web内容,更重要是,引入脚本语言使我们有了事件驱动...
  • 系统工作原理: 电机模块提供旋转动力。显示模块安装在电机模块之上。由单片机控制32只LED亮灭时间。当电机旋转时候,显示模块随电机同步旋转。利用流水灯原理和人眼视觉暂留效应,就能看到一幅具有悬浮效果...
  • 浏览器工作原理 介绍 渲染引擎 解析与DOM树构建 渲染树构建 布局 绘制 动态变化 渲染引擎线程 CSS2可视模型 5. 布局(Layout)当渲染对象被创建并添加到树中,它们并没有位置和大小,计算这些值过程称为layout或...
  • 网站工作原理,你搞懂了吗?网站工作原理输入网站地址...其实构成万维网的系统相当复杂,大多数情况下我们可以简单的说web就是相互链接的文档的集合。在学习web的工程中,我们经常会提到web服务器、动态和静态内容、HT
  • 以下分享这次面试华为面试题,由于文章篇幅原因,只是把面试题列了出来,详细答案我整理成了一份PDF文档,文末有详细免费领取方式,有需要朋友可以到文末查看领取方式。 公司需求 不同公司,不同需求...
  • 工作电压:直流5伏 8位独立数码管显示。 内部有三极管驱动电路。 段码串有限流电阻。 TTL电平控制,可以直接由单片机IO口控制。 八位段码输入,8位位码输入。 动态扫描显示。 八位数码管显示板实物展示: 八位数码管...
  • jsonp工作原理详解

    2014-03-11 10:12:31
    JavaScript是一种在Web开发中经常使用前端动态脚本技术。在JavaScript中,有一个很重要安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于JavaScript代码能够访问页面内容做了很重要限制...
  • HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新Web内容,更重要是,引入脚本语言使我们有了事件驱动...
  • 浏览器工作原理 介绍 渲染引擎 解析与DOM树构建 渲染树构建 布局 绘制 动态变化 渲染引擎线程 CSS2可视模型 # 4. 渲染树构建(Render tree construction)当Dom树构建完成时,浏览器开始构建另一棵树——渲染树。...
  • 浏览器工作原理 介绍 渲染引擎 解析与DOM树构建 渲染树构建 布局 绘制 动态变化 渲染引擎线程 CSS2可视模型 2. 渲染引擎(The rendering engine)渲染引擎职责就是渲染,即在浏览器窗口中显示所请求内容。默认...
  • jsonp解决跨域请求以及其工作原理

    万次阅读 2016-09-19 21:29:50
    jsonp解决跨域请求以及其工作原理  一.跨域问题 JavaScript是一种在Web开发中经常使用前端动态脚本技术。在JavaScript中,有一个很重要安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于...
  • 3.JavaScript工作原理

    2012-09-11 17:38:56
    HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新Web内容,更重要是,引入脚本语言使我们有了事件驱动...
  • 3.JavaScript工作原理

    2012-09-11 17:44:45
    HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新Web内容,更重要是,引入脚本语言使我们有了事件驱动...
  • 浏览器工作原理3-解析与DOM树构建

    千次阅读 2017-03-30 19:59:16
    浏览器工作原理3 介绍 渲染引擎 解析与DOM树构建 渲染树构建 布局 绘制 动态变化 渲染引擎线程 CSS2可视模型 3. 解析与DOM树构建解析(Parsing-general)既然解析是渲染引擎中一个非常重要过程,我们将稍微深入...
  • struts2拦截器工作原理

    千次阅读 2013-06-19 17:42:48
    1. 理解拦截器 1.1.  什么是拦截器: ...在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484
精华内容 193
关键字:

动态文档的工作原理