Ruby - Cookies CGI
O protocolo HTTP é um protocolo sem estado. Mas para um site comercial, é necessário manter as informações da sessão entre as diferentes páginas. Por exemplo, o registro de um usuário termina após completar muitas páginas. Mas como manter as informações da sessão do usuário em todas as páginas da web.
Em muitas situações, o uso de cookies é o método mais eficiente de lembrar e rastrear preferências, compras, comissões e outras informações necessárias para uma melhor experiência do visitante ou estatísticas do site.
Como funciona?
Seu servidor envia alguns dados para o navegador do visitante na forma de um cookie. O navegador pode aceitar o cookie. Em caso afirmativo, ele é armazenado como um registro de texto simples no disco rígido do visitante. Agora, quando o visitante chega a outra página do seu site, o cookie fica disponível para recuperação. Uma vez recuperado, seu servidor sabe / lembra o que foi armazenado.
Cookies são um registro de dados de texto simples de cinco campos de comprimento variável -
Expires- A data em que o cookie irá expirar. Se estiver em branco, o cookie irá expirar quando o visitante sair do navegador.
Domain - O nome de domínio do seu site.
Path- O caminho para o diretório ou página da web que define o cookie. Isso pode ficar em branco se você quiser recuperar o cookie de qualquer diretório ou página.
Secure- Se este campo contiver a palavra "seguro", o cookie só poderá ser recuperado com um servidor seguro. Se este campo estiver em branco, não existe tal restrição.
Name = Value - Os cookies são definidos e recuperados na forma de pares de chave e valor.
Manipulando Cookies em Ruby
Você pode criar um objeto de cookie nomeado e armazenar qualquer informação textual nele. Para enviá-lo para o navegador, defina umcookiecabeçalho na chamada para CGI.out .
#!/usr/bin/ruby
require "cgi"
cgi = CGI.new("html4")
cookie = CGI::Cookie.new('name' => 'mycookie', 'value' => 'Zara Ali', 'expires' => Time.now + 3600)
cgi.out('cookie' => cookie) do
cgi.head + cgi.body { "Cookie stored" }
end
Na próxima vez que o usuário voltar a esta página, você poderá recuperar os valores de cookie definidos conforme mostrado abaixo -
#!/usr/bin/ruby
require "cgi"
cgi = CGI.new("html4")
cookie = cgi.cookies['mycookie']
cgi.out('cookie' => cookie) do
cgi.head + cgi.body { cookie[0] }
end
Os cookies são representados usando um objeto separado da classe CGI :: Cookie, contendo os seguintes acessadores -
Atributo | Valor Retornado |
---|---|
nome | Nome do cookie |
valor | Uma matriz de valores de cookies |
caminho | O caminho do cookie |
domínio | O domínio |
expira | O tempo de expiração (como um objeto Time) |
seguro | Verdadeiro se cookie seguro |