关于日期和时间方面的HTTP协议应用


在学习HTTP协议中,我们不得不重点讲述一下HTTP协议应用。这个有关于HTTP应用方面的内容,大家应该都清楚时间/日期格式的应用。那么我们现在要将的主要是完整日期的相关内容。之后还会对其他部分进行补充。希望大家能继续关注。

完整日期

历史上的HTTP协议应用一直允许三种不同的表示日期/时间印记的格式:

  1. Sun, 06 Nov 1994 08:49:37 GMT; RFC 822, updated by RFC 1123  
  2. Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036  
  3. Sun Nov6 08:49:37 1994; ANSI C's asctime() format 

第一种格式是作为Internet标准提出来的,它表示一个由RFC 1123 [8](RFC 822[9]的升级版本)定义的固定长度的子集.第二种格式使用比较普遍,但是基于废弃的RFC 850 [12],需要(应该)用四位数表示年份.对日期值进行语法分析的HTTP/1.1客户和服务器必须接受所有三种格式(为了同HTTP/1.0兼容),虽然它们必须只产生RFC 1123格式以在头域里表示HTTP日期值.

注:鼓励日期值的接收者在接受可能由非HTTP协议应用发来的日期值时要坚定,这种非HTTP协议应用有时是通过代理/网关到SMTP或NNTP检索或张贴消息.

所有的HTTP日期/时间印记都必须毫无例外的以格林威治平均时间(GMT)表示.为了HTTP,GMT完全等同于UTC(协调世界时间).这在前两种形式里用三个字母的时区缩写-GMT的蕴含来表示,并且读取ASC时间格式时必须先被假定.HTTP日期区分大小写,除了在语法中作为SP特别包括的LWS外,一定不能包括额外的LWS.

  1. HTTP-daterfc1123-date | rfc850-date | asctime-date  
  2. rfc1123-date = wkday "," SP date1 SP time SP "GMT"  
  3. rfc850-dateweekday "," SP date2 SP time SP "GMT"  
  4. asctime-date = wkday SP date3 SP time SP 4DIGIT  
  5. date1 = 2DIGIT SP month SP 4DIGIT  
  6.  ; day month year (e.g., 02 Jun 1982)  
  7. date2 = 2DIGIT "-" month "-" 2DIGIT  
  8.  ; day-month-year (e.g., 02-Jun-82)  
  9. date3 = month SP ( 2DIGIT | ( SP 1DIGIT ))  
  10.  ; month day (e.g., Jun2)  
  11. time2DIGIT ":" 2DIGIT ":" 2DIGIT  
  12.  ; 00:00:00 - 23:59:59  
  13. wkday = "Mon" | "Tue" | "Wed"  
  14. | "Thu" | "Fri" | "Sat" | "Sun"  
  15. weekday"Monday" | "Tuesday" | "Wednesday"  
  16. | "Thursday" | "Friday" | "Saturday" | "Sunday"  
  17. month = "Jan" | "Feb" | "Mar" | "Apr"  
  18. | "May" | "Jun" | "Jul" | "Aug"  
  19. | "Sep" | "Oct" | "Nov" | "Dec" 

注意:HTTP协议应用对日期/时间印记格式的请求仅仅应用在协议流里.客户和服务器不必为了用户简报,请求记录及其他而使用这些格式.
 

相关内容

    暂无相关文章