RSP - Request e Response
Use essa página como referência para este texto.
Requests:
Use um editor de texto simples para criar o script abaixo e salve na pasta www como reqres.rsp.
<%
print {<font face="courier">}
print "content ...... = " probe request/content print "<br>"
print "method ....... = " probe request/method print "<br>"
print "posted ....... = " probe request/posted print "<br>"
print "client-ip .... = " probe request/client-ip print "<br>"
print "server-port .. = " probe request/server-port print "<br>"
print "translated ... = " probe request/translated print "<br>"
print "query-string . = " probe request/query-string print "<br>"
%>
<br><br>
<HTML>
<TITLE>Simple Web Form</TITLE>
<BODY>
<FORM ACTION="reqres.rsp">
<INPUT TYPE="TEXT" NAME="Field" SIZE="25"><BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Submit">
</FORM>
</BODY>
</HTML>
Com o Cheyenne rodando (porta 80), digite localhost/reqres.rsp na barra de endereços do navegador. Você deve ver isso:
Digite alguma coisa no campo e aperte o botão "Submit". Seu navegador deve mostrar isso:
O que acontece:
Parece claro que o Cheyenne pega o request do cliente (navegador), decodifica-o e armazena todos os valores importantes nas variáveis internas do objeto request.
Quando você clica em "Submit", ACTION="reqres.rsp" remete você para a mesma página, mas atualizada! Mas, para fazer isso, o navegador envia um request que é dividido e armazenado nas variáveis do objeto request , que são mostradas na página atualizada.
Responses:
Da mesma forma que os requests têm o objeto request, as responses têm o objeto response. No entanto, a maioria dos campos deste objeto são funções (ações). A exceção mais relevante é o response/buffer, que é onde o RSP do Cheyenne armazena tudo o que deve ser enviado ao cliente. É um bloco, e você pode manipulá-lo como qualquer série.
Se você mudar o código do reqres.rsp para:
<%
append response/buffer "<HTML>"
append response/buffer "<h3>This text is in the response buffer</h3>"
append response/buffer "<h4>This text is in the response buffer too</h4>"
append response/buffer "<p>So is this</p>"
%>
Você obtém:
Crie e salve o seguinte script RSP como coolexample.rsp na pasta www do Cheyenne . Abra localhost/coolexample.rsp no seu navegador e clique em um botão. Se o seu navegador suporta SVG HTML (a maioria suporta), uma imagem correspondente deve aparecer sob o botão.
<%
print {<font face="courier">}
print "content ...... = " probe request/content print "<br>"
%>
<HTML>
<br><br>
<TITLE>Cool Example</TITLE>
<BODY>
<b>Cool Example</b><p>
<FORM ACTION="coolexample.rsp">
<INPUT TYPE="SUBMIT" NAME="Triangle" VALUE="Triangle"><br><br>
<%
if not empty? request/content [
if (first request/content) = 'Triangle [
print {<svg width="100" height="100">
<polygon points="0,100 50,0 100,100"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg> <br>}
]
]
%>
<INPUT TYPE="SUBMIT" NAME="Square" VALUE="Square"><br><br>
<%
if not empty? request/content [
if (first request/content) = 'Square [
print {<svg width="100" height="100">
<rect width="100" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg> <br>}
]
]
%>
<INPUT TYPE="SUBMIT" NAME="Circle" VALUE="Circle"><br><br>
<%
if not empty? request/content [
if (first request/content) = 'Circle [
print {<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg> <br>}
]
]
%>
</FORM>
</BODY>
</HTML>