Re: формат даты в cookie

Maxim Dounin mdounin на mdounin.ru
Пт Мар 30 12:11:23 UTC 2012


Hello!

On Fri, Mar 30, 2012 at 03:42:35PM +0400, Anton Yuzhaninov wrote:

> Модуль ngx_http_userid_module при выдаче кук использует устаревший
> формат даты, например:
> expires=Thu, 31-Dec-37 23:55:55 GMT
> 
> Почему не используется такой формат?
> expires=Sun, 31 Dec 2037 23:55:55 GMT
> Такой формат не понимают какие то бразуеры? Если да, то какие?

u_char *
ngx_http_cookie_time(u_char *buf, time_t t)
{
    ngx_tm_t  tm;

    ngx_gmtime(t, &tm);

    /*
     * Netscape 3.x does not understand 4-digit years at all and
     * 2-digit years more than "37"
     */

    return ngx_sprintf(buf,
                       (tm.ngx_tm_year > 2037) ?
                                         "%s, %02d-%s-%d %02d:%02d:%02d GMT":
                                         "%s, %02d-%s-%02d %02d:%02d:%02d GMT",
                       week[tm.ngx_tm_wday],
                       tm.ngx_tm_mday,
                       months[tm.ngx_tm_mon - 1],
                       (tm.ngx_tm_year > 2037) ? tm.ngx_tm_year:
                                                 tm.ngx_tm_year % 100,
                       tm.ngx_tm_hour,
                       tm.ngx_tm_min,
                       tm.ngx_tm_sec);
}

Не то чтобы Netscape 3.x всё ещё актуален, но противоположных 
примеров пока нет ни одного.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru