在C中使用cookie与Vely框架
#网络开发人员 #编程 #c #vely

什么是饼干

cookie用于将数据保存在Web客户端。这些数据可能或多或少持久,可以用cookie本身指定其程度。因此,cookie可以持续到客户端会话结束,一天,一个月或几乎永远。

当然,最终用户总是可以删除cookie。

可以使用cookie来跟踪最终用户在做什么,保留会话信息,记住偏好和无数其他内容。

在典型的用法方案中,服务器要求浏览器保存cookie,并且浏览器将这样做,并且它将在每个将来的请求中提供此值:

How cookies work

设置一个cookie

您可以在服务器响应中设置cookie。因此,当客户端从服务器索取页面时,服务器将在HTTP响应中发送Set-Cookie标头。该标头(除其他外)陈述了cookie名称及其价值。客户读取此内容并设置cookie。这就是缺点。

得到饼干

每次客户端提出请求时,它都会发送与正在发送请求的服务器相关的所有cookie。请记住,这些是服务器在此之前发送给客户端的相同cookie。

使用cookie

时间轴通常是这样的:

  1. Web客户端(即浏览器)向服务器发送请求,

  2. 服务器将答复页面发送回客户端,并随之而来的是cookie(s),它希望客户保存,

  3. 客户端现在从服务器请求页面,每次这样做时,它也会将cookie发送回服务器。

这可能更清楚,例如会话身份验证:

  1. 客户端将用户名和密码发送到服务器(即对身份验证的请求),

  2. 服务器验证了这些,并将其发送回一个页面,宣布客户端已登录,然后将其作为cookie,

  3. 客户现在将此cookie发送回服务器,每个请求都会将此cookie发送给服务器ID。

这只是cookie的一种可能用途。但是,您可以理解它:cookie包含一些信息,这些信息有助于跟踪其状态或应用程序需要跟踪的任何信息。在这种情况下,它的身份验证。它可以是购物车。它可以跟踪用户阅读哪些文章。很多东西。

什么是Vely

Image description Vely是C编程语言的框架,特别适合Web应用程序。从内容管理系统到业务应用程序到交互式网站的所有事物都可以使用Vely进行。

用Vely编程意味着您为生成高度优化的C代码的声明性statements-最终结果是本地性能和较低的足迹。

cookie in Vely

set a cookie您将使用Set-Cookie语句:

set-cookie <cookie name>=<cookie value> \
    [ expires <expiration> ] \
    [ path <path> ] \
    [ same-site "Lax"|"Strict"|"None" ] \
    [ no-http-only ] \
    [ secure ]

所以最简单的形式只是:

set-cookie “my_cookie” = “some value”

写这篇文章时,Web浏览器将存储一些值为cookie的cookie。

然后,您可以指定所有其他cookie属性,例如到期日期(“到期”),路径(“路径”),无论它仅适用于http还是可以访问客户端脚本(“否) -http-lyly”),是否仅适用于同一站点(“ seal Site”),以及它是否仅与Secure(HTTPS)连接(“ Secure”)。

所以一个更涉及的例子:

get-time to define cookie_exp_time month 3

char *my_cookie_val="some cookie value";

set-cookie "tasty_cookie"=my_cookie_val expires cookie_exp_time path "/" same-site "Lax"

在此示例中,您首先获得到期日期,即从现在开始的3个月。因此,饼干将过期。它的值是从字符串获得的,并且也指定了路径和相同属性。从一开始就可以指定一条路径,因此以后不会混淆。

从称为您的服务器端代码的客户端到get a cookie

get-cookie [ define ] <cookie value> = <cookie name>

例如,在上面获取相同的cookie集:

get-cookie define cookie_val = “tasty_cookie”

字符串变量cookie_val是用“ define”子句创建的,其值将为某些cookie值。

最后,您可以删除cookie,这意味着浏览器将删除它,并且它将在以后的请求中回来:

delete-cookie <cookie name> \
     [ path <cookie path> ] \
     [ status [ define ] <status> ]

delete the cookie这里:

delete-cookie “tasty_cookie” path “/”

确保您指的是始终是正确的cookie,最好始终使用路径。

Vely Cookie示例

一个简单的示例将使cookie的主题更容易理解。

在这种情况下,浏览器中显示了一个表单,并且用户可以输入名称。提交表格后,此名称现在在浏览器中记录为cookie。

然后,另一个Web请求将获得此cookie并显示。

输入名称的HTML表单看起来像:

Enter cookie value

您的Vely代码的答复将是:

Cookie set

和以后获得cookie值将是:

Show cookie

vely cookie示例在这里 - 它包含了工作应用程序的说明:

https://vely.dev/example_cookies.html

好处是,这个示例是Vely安装的一部分。 install Vely后,您将不需要编写任何代码,只需按照说明获取示例,制作应用程序并运行它。

请注意,Vely是使用APT,DNF,Zypper或Pacman等标准Linux工具安装的。因此,您可以管理Vely安装,也可以轻松地将其从系统中删除。