Какой набор символов СЛЕДУЕТ использовать для заголовка Location: в ответе 301? - PullRequest
1 голос
/ 05 октября 2011

Пытаясь использовать URI cot.ag/o1LnfW из .NET с HttpWebRequest, я получаю ответ 301 Moved, заголовок ответа Location имеет (неверное) значение:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_â_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

От Fiddler я получаю (правильное) значение заголовка Location:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_–_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

Отмечено, где - встречается в URL Fiddler.В случае Fiddler байтами являются E2 80 93. В случае .Net байтами являются E2 3F 3F.Это приводит к неправильной интерпретации заголовка с последующим отказом следовать за перенаправлением.

Я думаю, что это ошибка .NET Framework, но я понятия не имею, что RFC говорят, что это ДОЛЖНО быть отправлено.Должен ли я сообщить об этом как об ошибке в Microsoft, или это ошибка bit.ly при обслуживании заголовков в неправильной кодовой странице?

Ответы [ 2 ]

4 голосов
/ 05 октября 2011

RFC 2616 указывает, что заголовок Location должен содержать URI, как определено RFC 1630 , что требует, чтобы URI был 7-битным чистым ASCII с любыми закодированными URL-адресами специальных символов .

Другими словами, сервер неправильно отправляет URI и должен экранировать его.

1 голос
/ 07 октября 2011

Я сообщил об ошибке на форуме поддержки bit.ly.Они должны отвечать допустимым URI RFC 1630 в наборе символов ASCII (без октетов с набором старших битов).

...