当前位置: 首页 > 工具软件 > Yaws > 使用案例 >

yaws 学习笔记!

姬宝
2023-12-01

入门较系统文档: http://yaws.hyber.org/yaws.pdf

 

1  列目录!?? yaws-doc-man config file- dir_listings = true | true_nozip | false

    部分完整配置  yaws.conf

<server localhost>
        port = 8080
        listen = 0.0.0.0
        docroot = "d:\Program Files\Yaws-1.87/www"
        appmods = <cgi-bin, yaws_appmod_cgi>   
        dir_listings = true
</server>

 

ebin_dir = "d:\Program Files\Yaws-1.87/examples/ebin"
ebin_dir = "d:\Program Files\Yaws-1.87/www/"

 

 

2  系统自带一个购物页面 :8080/shoppingcart/   

 

3  When a client browser wants a protected file, it must send a “Authenticate: username:password” header in the request. Note that this is plain text .
WWW-Authentication is configured in the yaws.conf file, in as many <auth> directives as you desire:
<server foo>
docroot = /var/yaws/www/
..
..
<auth>
realm = secretpage
dir = /protected
dir = /anotherdir
user = klacke:gazonk
user = jonny:xyz
user = ronny:12r8uyp09jksfdge4
</auth>
</server>

 

4   页面显示中文:   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=GB18030\">

yaws beam文件更新需要重启yaws以清除缓存

 

 

 

 

3 yaws_api.hrl 几个结构  要好好记一记!

-record(arg, {
          clisock,        %% the socket leading to the peer client
          client_ip_port, %% {ClientIp, ClientPort} tuple
          headers ,        %% headers
          req ,            %% request
          clidata,        %% The client data (as a binary in POST requests)
          server_path,    %% The normalized server path                           %% (pre-querystring part of URI)
          querydata,      %% For URIs of the form ...?querydata                           %%  equiv of cgi QUERY_STRING
          appmoddata,     %% (deprecated - use pathinfo instead) the remainder                           %% of the path leading up to the query
          docroot,        %% Physical base location of data for this request
          docroot_mount,  %% virtual directory e.g /myapp/ that the docroot                          %%  refers to.
          fullpath,       %% full deep path to yaws file
          cont,           %% Continuation for chunked multipart uploads
          state,          %% State for use by users of the out/1 callback
          pid,            %% pid of the yaws worker process
          opaque,         %% useful to pass static data
          appmod_prepath, %% (deprecated - use prepath instead) path in front                           %%of: <appmod><appmoddata>
          prepath,        %% Path prior to 'dynamic' segment of URI.                           %%  ie http://some.host/<prepath>/<script-point>/d/e                           %% where <script-point> is an appmod mount point,                           %% or .yaws,.php,.cgi,.fcgi etc script file.
          pathinfo        %% Set to '/d/e' when calling c.yaws for the request                           %% http://some.host/a/b/c.yaws/d/e                          %%  equiv of cgi PATH_INFO
         }).


-record(http_request , {method,
                       path,
                       version}).

-record(http_response, {version,
                        status,
                        phrase}).

-record(headers , {
          connection,
          accept,
          host,
          if_modified_since,
          if_match,
          if_none_match,
          if_range,
          if_unmodified_since,
          range,
          referer,
          user_agent,
          accept_ranges,
          cookie = [],
          keep_alive,
          location,
          content_length,
          content_type,
          content_encoding,
          authorization,
          transfer_encoding,
          other = []   %% misc other headers
         }).




-record(url,
        {scheme,          %% undefined means not set
         host,            %% undefined means not set
         port,            %% undefined means not set
         path = [],
         querypart = []}).


-record(setcookie,{
            key,          
            value,        
            quoted,       
            comment,
            comment_url,
            discard,
            domain,
            max_age,
            expires,
            path,
            port,
            secure,
            version}).


-record(redir_self, {
          host,        %% string() - our own host
          scheme,      %% http | https
          scheme_str,  %% "https://"  | "http://"
          port,        %% integer()  - our own port
          port_str     %% "" | ":<int>" - the optional port part
                       %%                 to append to the url
         }).

 

 

 

 

 类似资料: