Q1)
Если вы обратитесь к RFC 2616, раздел 14, вы увидите что определение заголовка Last-Modified:
Last-Modified = "Last-Modified" ":" HTTP-дата
HTTP-дата указана в том же RFC, раздел 3.
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Первый формат предпочтительнее в качестве интернет-стандарта и представляет собой подмножество фиксированной длины формата, определенного в RFC 1123 [8] (обновление RFC 822 [9]). Второй формат широко используется, но основан на устаревшем формате даты RFC 850 [12] и не имеет четырехзначного числа года. Клиенты и серверы HTTP/1.1, которые анализируют значение даты, ДОЛЖНЫ принимать все три формата (для совместимости с HTTP/1.0), хотя они ДОЛЖНЫ генерировать только формат RFC 1123 для представления значений даты HTTP в полях заголовка.
Поскольку дата в вашем заголовке совпадает с первой из них, а отличается только часовой пояс, вы можете проверить RFC 1123, чтобы убедиться, что это законно. Что касается часовых поясов, в этом говорится.
Существует сильная тенденция к использованию числовых индикаторов часовых поясов, и реализации ДОЛЖНЫ использовать числовые часовые пояса вместо названий часовых поясов. Однако все реализации ДОЛЖНЫ принимать любую нотацию. Если используются имена часовых поясов, они ДОЛЖНЫ точно соответствовать определению в RFC-822.
Из RFC 822 Section 5 мы можем увидеть определение зоны:
zone = "UT" / "GMT" ; Universal Time
; North American : UT
/ "EST" / "EDT" ; Eastern: - 5/ - 4
/ "CST" / "CDT" ; Central: - 6/ - 5
/ "MST" / "MDT" ; Mountain: - 7/ - 6
/ "PST" / "PDT" ; Pacific: - 8/ - 7
/ 1ALPHA ; Military: Z = UT;
; A:-1; (J not used)
; M:-12; N:+1; Y:+12
/ ( ("+" / "-") 4DIGIT ) ; Local differential
; hours+min. (HHMM)
Поскольку часовой пояс в заголовке здесь не указан, мы можем сделать вывод, что он недействителен и что сервер фактически нарушает протокол, поэтому исключение представляется разумным.
Q2)
Боюсь, я не знаю, как вы могли бы справиться с этим, кроме как поставить прокси таким образом, чтобы исправить заголовок, чтобы он был действительным, или попросить людей, которые пишут/обслуживают сервер Mongoose, исправить это (или исправить это самостоятельно и отправьте патч, так как это проект с открытым исходным кодом).
Q3)
Я редко (если вообще когда-либо) видел веб-сервер, у которого были проблемы с вызовом .NET, поэтому я не думаю, что этот тип проблем распространен в Интернете в целом.
person
Greg Beech
schedule
23.11.2009