關于日期和時間方面的HTTP協(xié)議應用
在學習HTTP協(xié)議中,我們不得不重點講述一下HTTP協(xié)議應用。這個有關于HTTP應用方面的內(nèi)容,大家應該都清楚時間/日期格式的應用。那么我們現(xiàn)在要將的主要是完整日期的相關內(nèi)容。之后還會對其他部分進行補充。希望大家能繼續(xù)關注。
完整日期
歷史上的HTTP協(xié)議應用一直允許三種不同的表示日期/時間印記的格式:
- 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 Nov6 08:49:37 1994; ANSI C's asctime() format
***種格式是作為Internet標準提出來的,它表示一個由RFC 1123 [8](RFC 822[9]的升級版本)定義的固定長度的子集.第二種格式使用比較普遍,但是基于廢棄的RFC 850 [12],需要(應該)用四位數(shù)表示年份.對日期值進行語法分析的HTTP/1.1客戶和服務器必須接受所有三種格式(為了同HTTP/1.0兼容),雖然它們必須只產(chǎn)生RFC 1123格式以在頭域里表示HTTP日期值.
注:鼓勵日期值的接收者在接受可能由非HTTP協(xié)議應用發(fā)來的日期值時要堅定,這種非HTTP協(xié)議應用有時是通過代理/網(wǎng)關到SMTP或NNTP檢索或張貼消息.
所有的HTTP日期/時間印記都必須毫無例外的以格林威治平均時間(GMT)表示.為了HTTP,GMT完全等同于UTC(協(xié)調(diào)世界時間).這在前兩種形式里用三個字母的時區(qū)縮寫-GMT的蘊含來表示,并且讀取ASC時間格式時必須先被假定.HTTP日期區(qū)分大小寫,除了在語法中作為SP特別包括的LWS外,一定不能包括額外的LWS.
- HTTP-date= rfc1123-date | rfc850-date | asctime-date
- rfc1123-date = wkday "," SP date1 SP time SP "GMT"
- rfc850-date= weekday "," SP date2 SP time SP "GMT"
- asctime-date = wkday SP date3 SP time SP 4DIGIT
- date1 = 2DIGIT SP month SP 4DIGIT
- ; day month year (e.g., 02 Jun 1982)
- date2 = 2DIGIT "-" month "-" 2DIGIT
- ; day-month-year (e.g., 02-Jun-82)
- date3 = month SP ( 2DIGIT | ( SP 1DIGIT ))
- ; month day (e.g., Jun2)
- time= 2DIGIT ":" 2DIGIT ":" 2DIGIT
- ; 00:00:00 - 23:59:59
- wkday = "Mon" | "Tue" | "Wed"
- | "Thu" | "Fri" | "Sat" | "Sun"
- weekday= "Monday" | "Tuesday" | "Wednesday"
- | "Thursday" | "Friday" | "Saturday" | "Sunday"
- month = "Jan" | "Feb" | "Mar" | "Apr"
- | "May" | "Jun" | "Jul" | "Aug"
- | "Sep" | "Oct" | "Nov" | "Dec"
注意:HTTP協(xié)議應用對日期/時間印記格式的請求僅僅應用在協(xié)議流里.客戶和服務器不必為了用戶簡報,請求記錄及其他而使用這些格式.