File: sapi.html

package info (click to toggle)
lua-cgi 6.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 956 kB
  • sloc: javascript: 2,216; makefile: 25
file content (152 lines) | stat: -rwxr-xr-x 11,195 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>CGILua: gera&ccedil;&atilde;o de scripts para a Web usando Lua</title>
    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>

<div id="container">
	
<div id="product">
	<div id="product_logo"><a href="http://www.keplerproject.org"><img alt="Logotipo do CGILua" src="cgi-128.gif"/></a></div>
	<div id="product_name"><big><strong>CGILua</strong></big></div>
	<div id="product_description">Gera&ccedil;&atilde;o de scripts para a Web usando Lua</div>
</div> <!-- id="product" -->

<div id="main">
	
<div id="navigation">
<h1>CGILua</h1>
	<ul>
		<li><a href="index.html">In&iacute;cio</a>
			<ul>
				<li><a href="index.html#overview">Vis&atilde;o geral</a></li>
				<li><a href="index.html#status">Status</a></li>
				<li><a href="index.html#download">Download</a></li>
				<li><a href="index.html#history">Hist&oacute;rico</a></li>
				<li><a href="index.html#incompatibility">Incompatibilidades</a></li>
				<li><a href="index.html#credits">Cr&eacute;ditos</a></li>
				<li><a href="index.html#contact">Fale conosco</a></li>
			</ul>
		</li>
		<li><a href="manual.html">Manual</a>
			<ul>
				<li><a href="manual.html#intro">Introdu&ccedil;&atilde;o</a></li>
				<li><a href="manual.html#installation">Instala&ccedil;&atilde;o</a></li>
				<li><a href="manual.html#config">Configura&ccedil;&atilde;o</a></li>
				<li><a href="manual.html#scripts">Lua Scripts</a></li>
				<li><a href="manual.html#templates">Lua Pages</a></li>
				<li><a href="manual.html#parameters">Par&acirc;metros</a></li>
			</ul>
		</li>
		<li><a href="reference.html">Refer&ecirc;ncia</a>
			<ul>
				<li><a href="reference.html#headers">Cabe&ccedil;alhos</a></li>
				<li><a href="reference.html#contents">Gera&ccedil;&atilde;o de conte&uacute;do</a></li>
				<li><a href="reference.html#prep">Lua Pages</a></li>
				<li><a href="reference.html#variables">Vari&aacute;veis do CGILua</a></li>
				<li><a href="reference.html#error_handling">Tratamento de erros</a></li>
				<li><a href="reference.html#behavior">Comportamento do CGILua</a></li>
				<li><a href="reference.html#urlcode">Codifica&ccedil;&atilde;o de URL</a></li>
				<li><a href="reference.html#auxiliar">Fun&ccedil;&otilde;es auxiliares</a></li>
				<li><a href="reference.html#index">&Iacute;ndice alfab&eacute;tico</a></li>
			</ul>
		</li>
		<li><a href="libraries.html">Bibliotecas</a>
			<ul>
				<li><a href="libraries.html#cookies">Cookies</a></li>
				<li><a href="libraries.html#serialize">Serialize</a></li>
				<li><a href="libraries.html#session">Session</a></li>
			</ul>
		</li>
		<li><strong>SAPI</strong></li>
		<li><a href="license.html">Licen&ccedil;as</a></li>
	</ul>
</div> <!-- id="navigation" -->

<div id="content">

<h2>API do servidor</h2>

<p>A API do servidor (SAPI) &eacute; um conjunto de fun&ccedil;&otilde;es que abstrai o servidor Web e o disparador usado. Um disparador de SAPI &eacute; o mecanismo que permite a um servidor Web executar e comunicar-se com o CGILua e os aplicativos Web. A SAPI permite a abstra&ccedil;&atilde;o de uma s&eacute;rie de detalhes internos, fazendo com que o CGILua seja muito mais port&aacute;til, j&aacute; que transportar o CGILua para uma nova plataforma significa simplesmente escrever um disparador de SAPI para a plataforma de destino.</p>

<p>No momento, o CGILua oferece suporte a Apache, Microsoft IIS, Tomcat e Xavante como servidores Web, e a CGI, FastCGI, mod_lua, ISAPI e servlets como disparadores.</p>

<p>As fun&ccedil;&otilde;es s&atilde;o separadas em dois pacotes: <code>SAPI.Request</code> e <code>SAPI.Response</code>:</p>

<dl class="reference">
    <dt><strong><code>SAPI.Request.getpostdata ([n])</code></strong></dt>
    <dd>Obt&eacute;m um bloco de <em>dados de POST</em>. O par&acirc;metro opcional <em>n</em> &eacute; o n&uacute;mero de bytes para ler (o tamanho de bloco padr&atilde;o ser&aacute; usado se nenhum par&acirc;metro for informado).<br /> Retorna o bloco como uma string Lua.</dd>
    
    <dt><a href="#servervariable"><strong><code>SAPI.Request.servervariable (string)</code></strong></a></dt>
    <dd>Obt&eacute;m o valor de uma vari&aacute;vel de ambiente do servidor. O argumento pode ser uma das <a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">vari&aacute;veis CGI</a> definidas, embora nem todos os servidores implementem o conjunto completo de vari&aacute;veis. O conjunto consiste em:<br />
    <ul>
        <li><strong><code>AUTH_TYPE</code></strong> - se o servidor suportar autentica&ccedil;&atilde;o de usu&aacute;rio e o script estiver protegido, este &eacute; o m&eacute;todo de autentica&ccedil;&atilde;o espec&iacute;fico ao protocolo usado para validar o usu&aacute;rio.</li>
        
        <li><strong><code>CONTENT_LENGTH</code></strong> - o tamanho do conte&uacute;do como fornecido pelo cliente.</li>
        
        <li><strong><code>CONTENT_TYPE</code></strong> - para consultas que t&ecirc;m informa&ccedil;&otilde;es anexadas, por exemplo, HTTP POST e PUT, este &eacute; o tipo de conte&uacute;do dos dados.</li>
        
        <li><strong><code>GATEWAY_INTERFACE</code></strong> - a revis&atilde;o da especifica&ccedil;&atilde;o CGI com a qual esse servidor &eacute; compat&iacute;vel. Formato: CGI/revis&atilde;o</li>
        
        <li><strong><code>PATH_INFO</code></strong> - informa&ccedil;&otilde;es adicionais sobre o caminho, conforme fornecidas pelo cliente. Em outras palavras, os scripts podem ser acessados por meio dos respectivos nomes de caminho virtual, seguidos de informa&ccedil;&otilde;es adicionais no final desse caminho. As informa&ccedil;&otilde;es adicionais s&atilde;o enviadas como PATH_INFO. Essas informa&ccedil;&otilde;es devem ser decodificadas pelo servidor se vierem de uma URL antes de serem passadas para o script CGI.</li>
        
        <li><strong><code>PATH_TRANSLATED</code></strong> - o servidor fornece uma vers&atilde;o convertida de PATH_INFO, que realiza quaisquer mapeamentos de virtual para f&iacute;sico no caminho.</li>
        
        <li><strong><code>QUERY_STRING</code></strong> - as informa&ccedil;&otilde;es inseridas ap&oacute;s o &quot;?&quot; na URL que fez refer&ecirc;ncia a esse script. Essas s&atilde;o as informa&ccedil;&otilde;es da consulta e n&atilde;o devem ser decodificadas. Esta vari&aacute;vel deve ser sempre definida quando houver informa&ccedil;&otilde;es da consulta, qualquer que seja a decodifica&ccedil;&atilde;o da linha de comando.</li>
        
        <li><strong><code>REMOTE_ADDR</code></strong> - o endere&ccedil;o IP do host remoto que faz o pedido.</li>
        
        <li><strong><code>REMOTE_HOST</code></strong> - o nome do host que faz o pedido. Se o servidor n&atilde;o tiver essas informa&ccedil;&otilde;es, ele define REMOTE_ADDR e n&atilde;o define esta vari&aacute;vel.</li>
        
        <li><strong><code>REMOTE_IDENT</code></strong> - se o servidor HTTP oferecer suporte &agrave; identifica&ccedil;&atilde;o RFC 931, esta vari&aacute;vel ser&aacute; definida com o nome do usu&aacute;rio remoto recuperado do servidor. O uso desta vari&aacute;vel deve ser limitado apenas &agrave; conex&atilde;o.</li>
        
        <li><strong><code>REMOTE_USER</code></strong> - se o servidor oferecer suporte &agrave; autentica&ccedil;&atilde;o de usu&aacute;rio e o script estiver protegido, este &eacute; o nome de usu&aacute;rio com o qual eles foram autenticados.</li>
        
        <li><strong><code>REQUEST_METHOD</code></strong> - o m&eacute;todo com o qual o pedido foi feito. Para HTTP, isto equivale a &quot;GET&quot;, &quot;HEAD&quot;, &quot;POST&quot; etc.</li>
        
        <li><strong><code>SCRIPT_NAME</code></strong> - um caminho virtual para o script em execu&ccedil;&atilde;o, usado em URLs auto-referentes.</li>
        
        <li><strong><code>SERVER_NAME</code></strong> - o nome do host do servidor, o alias do DNS ou o endere&ccedil;o IP como exibido em URLs auto-referentes.</li>
        
        <li><strong><code>SERVER_PORT</code></strong> - o n&uacute;mero da porta &agrave; qual o pedido foi enviado.</li>
        
        <li><strong><code>SERVER_PROTOCOL</code></strong> - o nome e a revis&atilde;o do protocolo de informa&ccedil;&otilde;es com o qual este pedido foi enviado. Formato: protocolo/revis&atilde;o</li>
        
        <li><strong><code>SERVER_SOFTWARE</code></strong> - o nome e a vers&atilde;o do software do servidor Web que responde ao pedido (e executa o gateway). Formato: nome/vers&atilde;o</li>
    </ul>
    Al&eacute;m desses, as linhas do cabe&ccedil;alho recebidas do cliente, se houver, s&atilde;o colocadas no ambiente com o prefixo <code>HTTP_</code> seguido do nome do cabe&ccedil;alho. Quaisquer caracteres <code>-</code> (h&iacute;fen) no nome do cabe&ccedil;alho s&atilde;o alterados para caracteres <code>_</code> (sublinhado). O servidor pode excluir quaisquer cabe&ccedil;alhos que j&aacute; tenha processado, por exemplo, <em>Authorization</em>, <em>Content-type</em> e <em>Content-length</em>. Se necess&aacute;rio, o servidor pode optar por excluir todos ou qualquer um desses cabe&ccedil;alhos se a inclus&atilde;o exceder algum limite do ambiente do sistema.<br />
    Retorna uma string.</dd>

    <dt><strong><code>SAPI.Response.contenttype (string)</code></strong></dt>
    <dd>Envia o cabe&ccedil;alho <em>Content-type</em> para o cliente. A string fornecida est&aacute; na forma &quot;<em>tipo</em>/<em>subtipo</em>&quot;. Esta fun&ccedil;&atilde;o deve ser chamada antes que qualquer sa&iacute;da seja enviada com o uso de <code>SAPI.Response.write</code>.<br /> N&atilde;o retorna nada.</dd>
    
    <dt><strong><code>SAPI.Response.errorlog (string)</code></strong></dt>
    <dd>Gera uma sa&iacute;da de erro usando a string fornecida.<br /> N&atilde;o retorna nada.</dd>

    <dt><strong><code>SAPI.Response.header (header, value)</code></strong></dt>
    <dd>Envia um cabe&ccedil;alho gen&eacute;rico para o cliente. O primeiro argumento deve ser o nome do cabe&ccedil;alho, por exemplo, &quot;Set-Cookie&quot;. O segundo deve ser o valor. Esta fun&ccedil;&atilde;o n&atilde;o deve ser usada em substitui&ccedil;&atilde;o &agrave;s fun&ccedil;&otilde;es <code>SAPI.Response.contenttype</code> ou <code>SAPI.Response.redirect</code>.<br /> N&atilde;o retorna nada.</dd>

    <dt><strong><code>SAPI.Response.redirect (url)</code></strong></dt>
    <dd>Envia o cabe&ccedil;alho <em>Location</em> para o cliente. A <code>url</code> fornecida deve ser uma string.<br /> N&atilde;o retorna nada.</dd>
  
    <dt><strong><code>SAPI.Response.write (string)</code></strong></dt>
    <dd>Gera uma sa&iacute;da usando a string fornecida.<br /> N&atilde;o retorna nada.</dd>
</dl>

</div> <!-- id="content" -->

</div> <!-- id="main" -->

<div id="about">
	<p><a href="http://validator.w3.org/check?uri=referer">valid</a></p>
	<p><small>$Id: sapi.html,v 1.3 2005/11/03 18:48:57 carregal Exp $</small></p>
</div> <!-- id="about" -->

</div> <!-- id="container" -->

</body>
</html>