2012-04-10 93 views
2

我正在發送原始請求,並通過HTTP接收原始響應。許多字符似乎在響應中被轉義,如本例中的逗號:「LOCATION:Philadelphia \,PA。」我的問題是,這是一個HTTP的事情,一個PHP的事情,或CalDav的事情?還有哪些角色被認爲是「特別的」?HTTP轉義字符,PHP,CALDAV

編輯:

實際響應:

HTTP/1.1 207 Multi-Status 
Date: Tue, 10 Apr 2012 20:24:26 GMT 
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.14 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g mod_wsgi/2.0 Python/2.5.2 mod_perl/2.0.3 Perl/v5.8.8 
X-Powered-By: PHP/5.2.4-2ubuntu5.14 
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule 
DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule 
Content-Location: /davical/caldav.php/rwr26/home/ 
ETag: "dd99b87d4c1051ea2e9f4bf203e1a148" 
X-DAViCal-Version: DAViCal/0.9.9; DB/1.2.9 
Content-Length: 1305 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Content-Type: text/xml; charset="utf-8" 

<?xml version="1.0" encoding="utf-8" ?> 
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> 
<response> 
    <href>/davical/caldav.php/rwr26/home/5F12F7DA-10B0-4EE3-820D-B56F0B2FC153.ics</href> 
    <propstat> 
    <prop> 
    <getetag>"d7a384dba191b9659ccf12ac9edc449e"</getetag> 
    <C:calendar-data>BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-////NONSGML kigkonsult.se iCalcreator 2.10.23// 
CALSCALE:GREGORIAN 
BEGIN:VTIMEZONE 
TZID:America/New_York 
X-LIC-LOCATION:America/New_York 
BEGIN:STANDARD 
DTSTART:20111106T070000 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 
TZNAME:EST 
END:STANDARD 
BEGIN:DAYLIGHT 
DTSTART:20120311T080000 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 
TZNAME:EDT 
END:DAYLIGHT 
END:VTIMEZONE 
BEGIN:VEVENT 
UID:5F12F7DA-10B0-4EE3-820D-B56F0B2FC153 
DTSTAMP:20120408T041113Z 
CLASS:PUBLIC 
CREATED:20120408T041113Z 
DESCRIPTION:Testfghfghfghfghfghfghfghfghfghfghfghfghfghfghfgh 
DTSTART;TZID=America/New_York:20120410T000000 
DTEND;TZID=America/New_York:20120419T010000 
LAST-MODIFIED:20120408T041228Z 
LOCATION:Philadelphia\, PA 
SEQUENCE:1 
SUMMARY:Test 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
</C:calendar-data> 
    </prop> 
    <status>HTTP/1.1 200 OK</status> 
    </propstat> 
</response> 
</multistatus> 
+0

這是在響應數據,還是標題?你可以發佈完整的回覆,標題和所有? HTTP不關心響應數據,所以我認爲這回答你的問題,具體取決於。 – Brad 2012-04-10 20:50:49

+0

第一個假設:CAL DAV。它不是PHP的Magic Quotes(縮寫'''',''''和'NUL').HTTP只是傳輸,它本身沒有改變。 – hakre 2012-04-10 20:53:46

+0

@Brad響應的一部分。我現在包含了完整的響應 – user978122 2012-04-10 21:00:44

回答

1

第一個假設:CAL DAV。這不是PHP的魔術引號(斜槓',"NUL)。而HTTP只是傳輸,它並不會自行更改。

+0

找到http://tools.ietf.org/html/rfc5545中的字符 – user978122 2012-04-10 22:17:05

+0

text = *(TSAFE-CHAR /「:」/ DQUOTE/ESCAPED-CHAR) ;根據以上描述摺疊 ESCAPED-CHAR =(「\\」/「\;」/「\,」/「\ N」/「\ n」) ; \\編碼\,\ N或\ n編碼換行 ; \;編碼;,\,enc Odes, TSAFE-CHAR = WSP /%x21 /%x23-2B /%x2D-39 /%x3C-5B/ %x5D-7E/NON-US-ASCII ;除當前 不需要的CONTROL外的任何字符;字符集,DQUOTE,「;」,「:」,「\」,「,」 – user978122 2012-04-10 22:17:22