欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    YAWShhWord下载.docx

    • 资源ID:20065554       资源大小:136.47KB        全文页数:63页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    YAWShhWord下载.docx

    1、 7.1.3 认证 7.1.4 数据库驱动应用 7.2 Appmods 7.3 Opaque 数据 7.4 用户定制 7.4.1 404 文件未找到 7.4.2 崩溃信息 7.5 内容流 7.6 out/1函数返回值8 调试与开发 8.1 日志记录9 基于CGI的外部脚本10 FastCGI 10.1 FastCGI响应器角色 10.2 FastCGI认证器角色 10.3 FastCGI过滤器角色 10.4 FastCGI配置11 安全 11.1 网络认证12 嵌入式模式 12.1 创建全局和服务器配置 12.2 在嵌入式模式下启动Yaws13 配置文件 yaws.conf 13.1 全局部分

    2、 13.2 服务器部分 13.3 .yaws_auth文件中包含的原语 13.4 配置示例14 网络套接字协议支持 14.1 建立一个网络套接字连接 14.1.1 支持的选项 14.2 网络套接字回调模块 14.2.1 基础回调模块 14.2.2 高级回调模块 14.3 记录定义第1章 介绍Yaws是用Erlang编程语言写的一个网络服务器。它把Erlang作为作为嵌入式语言,就像Apache的PHP或者Tomcat的Java一样。相对于Java或PHP来说,Erlang作为嵌入式网页语言的优点很多: 速度使用Erlang来实现网络服务器以及作为嵌入式脚本能得到很好的生成动态网页的性能 优美当

    3、然这是主观观点。 可扩展性Erlang的轻量级进程使得Yaws可以处理大量的并发连接。Yaws支持: HTTP1.0与HTTP1.1 输出静态网页 在HTML页面中嵌入Erlang代码来生成动态内容 NCSA/XLF/ELF日志格式的传输日志 虚拟主机(同一IP地址上的多个服务器) 多个IP地址上的多个服务器 HTTP跟踪调试 开发调试网站时可用的网络服务器交互式解释器环境 RAM缓存经常访问的页面 上传和下载动态生成页面的完整的流功能 SSL 支持网络认证页面 提供API,支持基于cookie的会话 建立虚拟目录层次的应用模块 嵌入式模式 网络套接字(RFC 6455) 长轮询(COMET)

    4、应用 正、反向代理1.1 前提此文档要求读者: 熟悉Erlang编程语言 理解基本的网络技术1.2 示例我们通过一个小示例的帮助来介绍Yaws网络服务器。Yaws传输静态网页与其它的老式网络服务器类似,只是它比大多数都快。有趣的地方在于Yaws传输动态页面。任意带有“.yaws”后缀的页面都被认为是Yaws动态页面。Yaws页面能包含嵌入式Erlang代码片段,这些代码片段能在页面被传输到网络浏览器时执行。示例1.1是一个小的Yaws页面的HTML代码。 p First paragrapherl Out(Arg) - html,“And here is some more HTML code/

    5、html它说明了Yaws的基本概念。通常,存储在以“.yaws”为后缀的文件中的HTML代码能包含和 Port = 8000 Listen = 127.0.0.1 Docroot = /home/klacke/yaws/var/yaws/www/server配置文件由初始全局变量集合组成,它们对所有已定义的服务器都有效。目前我们需要考虑的唯一一个全局原语是logdir。Yaws会产生一些日志文件。我们启动Yaws交互模式如下: # /bin/yaws i Erlang(BEAM) emulator version 5.1.2.b2 source Eshell V5.1.2.b2 (abort

    6、with G) 1 =INFO REPORT= 30-Oct-2002:01:38:22 = Using config file /home/klacke/yaws/etc/yaws/yaws.conf INFO REPORT= 30-Oct-2002: Listening to 127.0.0.1:8000 for servers “localhost:8000”通过启动Yaws的交互模式(使用命令开关-i),我们得到常规的Erlang弹出框,这在开发Yaws页面时非常方便。例如我们可以: 动态编译及载入需要的帮助模块 使得所有的崩溃及错误报告直接输出到终端上述配置定义了一个地址为127.0

    7、.0.1:8000,名称为“localhost”的HTTP服务器。理解服务器名称与地址的区别很重要。名称是用户HTTP Host:头的期望值,它通常与服务器的DNS名称一致,而地址则是服务器的实际IP地址。因为Yaws支持同一IP地址上的多个服务器的虚拟主机,所以这很重要。虽然如此,我们的服务器监听127.0.0.1:8000端口,其名称为“localhost”,因此正确的服务器URL为http:/localhost:8000。服务器的文档根目录(docroot)为Yaws源代码发布版中www目录的拷贝。此目录包含一些示例,而且我们能够在URL http:8000运行所有的这些示例。我们不是在

    8、Yaws www目录下编辑及添加文件,而是在同一IP地址的不同端口创建了另外一个服务器,尤其是不同的文档根目录以便于我们添加自己的文件。 # mkdir /test # mkdir /test/logs现在更改配置文件如下: Logdir = /home/klacke/test/logs Ebin_dir = /home/klacke/test Include_dir = /home/klacke/test port = 8000 listen = 127.0.0.1 docroot = /home/klacke/yaws/var/yaws/www port = 8001 docroot =

    9、/home/klacke/test我们定义了两个服务器,一个是初始默认,另一个指向自定义文档根目录。现在我们可以开始添加HTML页面形式的静态内容、.yaws页面形式的动态内容或者能够产生动态内容的Erlang .beam代码了。载入路径将被设定以便/test目录里的beam代码在引用时自动加载。在开发站点时运行Yaws于交互模式是很好的实践。为了启动Yaws作为后台守护进程,我们给出标记: # yaws-D -heart-D或-daemon标记指示Yaws作为后台守护进程运行,-heart标记将启动一个心跳程序,这个程序将在后台守护进程崩溃或者停止响应正常心跳时重启Yaws。默认情况下,心跳

    10、程序将重启后台守护进程,除非它已经在60秒或更少的时间内重启5次,此时它认为情况很严重并拒绝再次重启后台。-heart-restart = C,t标记更改60秒内5次重启为T秒内C次重启。对于无限次重启,设定C、T均为0。这也使能-heart标记。一旦启动为后台守护进程模式,我们就只有有限的方式与其交互了,可以查询如下: # yawsS此命令产生简单的每个已配置服务器的运行时间及点击次数的打印输出。如果我们更改配置,我们可以使用下面的命令来通知后台守护进程: # yawsh这将强制后台守护进程重新读取配置文件。第3章 静态内容Yaws在传输静态页面时与其它常规网络服务器没什么差别。默认情况下Y

    11、aws将在RAM中缓存静态内容。缓存行为由一些全局配置原语控制。RAM缓存会占用内存,因此细微调节缓存原语的默认值或者甚至完全关闭将会很有趣。下列配置原语控制缓存行为: max_num_cached_files = Integer,Yaws将在RAM中缓存小文件,例如经常访问的GIF图像。这个原语设定缓存文件的最大数量,默认值为400个文件. max_num_cached_bytes = Integer,这个原语控制用于所有缓存RAM文件的最大字节数量,默认值为1000000,1M字节。 max_size_cached_file = Integer,这个原语设定每个Yaws RAM缓存文件的大

    12、小,默认值最大为8000字节,8batters。这也许有点令人困惑,但是上述缓存原语是针对每个服务器的,因此如果我们指定max_num_cached_bytes = 1000000,并且定义3个服务器,那么我们将实际上会使用3*1000000个字节。第4章 动态内容动态内容才是Yaws所关注的。大多数网络服务器设计时考虑的是HTTP和静态内容,而Yaws设计的初衷就是动态页面。当前很多大型网站都大量使用动态页面。4.1 介绍当用户请求一个“.yaws”后缀的页面时,Yaws服务器将从硬盘读取该页面,并把它分割为HTML代码块和Erlang代码块。每个Erlang代码块分别编译为一个模块。Erl

    13、ang代码块必须包含out/1函数,否则Yaws服务器将在HTML输出中嵌入适当的错误信息。当Yaws服务器传输.yaws页面时,它将一块一块的处理.yaws文件中的代码。如果是HTML代码,则原样传输,然而如果是Erlang代码,Yaws服务器将调用其中的out/1函数,并将输出嵌入到HTML流,再传输给用户。Yaws当然会缓存编译结果,这样当用户再次请求相同的.yaws页面时,它会直接调用已编译的模块。4.2 EHTML使用out/1函数来生成HTML输出有两种方法。第一种也是最容易理解的方法是返回元组html,String,其中String是常规的HTML数据(字符串和/或二进制的深度列

    14、表),然后它被嵌入到输出流中。例如:h1 Example 1 out(A) - Headers = A#arg.headers, html, io_lib:format(“You say that youre running p”,Headers#headers.user_agent).第二种方法是返回元组ehtml,EHTML或者exhtml,EHTML,其中exhtml生成严格的XHTML代码。EHTML必须符合下列结构:EHTML = EHTML | TAG,Attrs,Body | TAG,Attrs | TAG | Module,Fun,Args | fun/0 | binary()

    15、 | character()TAG = atom()Attrs = HtmlAttribute,ValueHtmlAttribute = atom()Value = string() | binary() | atom() | integer() | float() | Module,Fun,Args | fun/0Body = EHTML我们给出一个示例来说明,例如元组 ehtml, table, bgcolor,grey, tr, , td, , “1”, td, , “2”, td, , “3” , tr, , td, colspan, “3”, “444” 可扩展为下列HTML代码ta

    16、ble bgcolor=”grey” 1 2 3 td colspan=”3” 444 第一眼看上去HTML代码比Erlang元组更清晰优美,从纯美学角度来说是这样的,但是Erlang代码的优势在于支持Erlang语法的编辑器的完美缩进(Emacs),而且更容易由Erlang程序来控制处理。注意ehtml支持函数调用,函数能够返回任意合法的ehtml值,包括其它函数值。Yaws支持M,F,Args和fun/0函数值形式。作为一些更有意思的ehtml示例,例如我们可以让out/1函数打印HTTP头。Yaws源代码发布版的www目录下有一个arg.yaws文件,它展示了传递给out/1函数的Arg

    17、#arg记录参数。在讨论那段代码前,我们先详细描述一下Arg记录。默认情况下所有的Yaws文件都会包含yaws_api.hrl文件。#arg记录中包含很多在动态处理HTTP请求时的有用字段。我们基本上可以访问所有的与用户请求相关的信息,例如: 通向HTTP用户的实际套接字 所有的HTTP头解析到#headers记录中 HTTP请求解析到#http_request记录中 clidata用户提交的数据 querydata URL中第一个“?”字符后面的数据 docroot 处理请求的虚拟服务器文档根目录的绝对路径-record(arg, clisock, %通向用户端的套接字 client_ip_

    18、port, %元组ClientIp, ClientPort headers, %头 req, %请求 orig_req, %原始请求 clidata, %用户数据(POST请求中的二进制数据) server_path, %规范化的服务器路径(URI的预查询字符串部分) querydata, %.?querydata形式的URI,与cgi QUERY_STRING等效 appmoddata, %通向查询路径的剩余部分(已弃用,建议使用pathinfo) docroot, %当前请求的数据的物理起始位置 docroot_mount, %参考docroot的虚拟路径,例如/myapp/ fullpa

    19、th, %到yaws文件的完整深度路径 cont, %分块多部分上传的后续部分 state, %out/1回调使用者用到的状态信息 pid, %yaws工作进程的ID opaque, %对传输静态数据有用appmod_prepath, %在之前的路径(已弃用,建议使用prepath)prepath, %URI动态部分之前的路径,即http:/some.host/d/e,其中 The Arg This page displays the Arg #argument structure supplied to the out/1 function. Req = A#arg.req, H = yaws_api:reformat_header(A#arg.headers), ehtml,h4, The headers passed to us were:,hr,ol, ,lists:map(fun(S) - li, p,S end,H),h4, , The requestul,li, f(method: s, Req#http_request.method),li, f(path: p, Req#http_request.path),version:, Req#http_request.version)Other


    注意事项

    本文(YAWShhWord下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开