требуется.

е, сегодня вам больше не нужно кодировать пробелы на% 20 в ваших ссылках HTML или ссылках на изображения. Например, предположим, что у вас есть это изображение в 〔http://example.com/i/my house.jpg〕. Обратите внимание на пространство там. В своем HTML-коде вы можете просто сделать это:

<img src="http://example.com/i/my house.jpg" alt="my house">

Это работает во всех текущих версиях браузеров. Тем не менее, я не уверен, что браузер кодирует его перед запросом URL-адреса, или же определенный сервер справится с путями с пробелом? (Apache)

Приложение: извините за путаницу. Мой настоящий вопрос о протоколе HTTP. Я оставлю это как есть и отмечу ответом. Я разместил новый вопрос здесь.протокол HTTP требует места в пути файла?

 Xah Lee12 янв. 2011 г., 06:52
PS Я знаю, что процентное кодирование требуется в URL. Во всяком случае, мне интересно, если протокол HTTP требует кодировки для пробела при использовании в пути к файлу для строки заголовка GET. (попытался проверить с помощью telnet ... но я забыл, какие другие заголовки необходимы, поэтому я прервал тест)

Ответы на вопрос(1)

Решение Вопроса

Вы все еще должны закодировать пробелы, хотя. Тот факт, что он работает в браузерах, которые вы используете, не делает его действительным и не означает, что он будет работать везде.

Вы можете увидеть список зарезервированных символов и других символов, которые должны быть закодированы здесь:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

RFC1738 конкретно говорится:

Таким образом, только буквенно-цифровые символы, специальные символы "$ -_. +! * '()," И зарезервированные символы, используемые для их зарезервированных целей, могут быть использованы в URL без кодирования.

RFC2396 имеет место по RFC1738 и подробно описывает использование пространства в URL:

Символ пробела исключается, поскольку значительные пробелы могут исчезать, а незначительные пробелы могут вводиться, когда URI транскрибируются, набираются или подвергаются обработке программ обработки текста. Пробельные символы также используются для разделения URI во многих контекстах.

 mu is too short12 янв. 2011 г., 07:43
@Xah Lee: HTTP ничего не знает об именах файлов, он знает только об URL./some thing.html может быть (частью) имени файла на сервере, но это деталь реализации, HTTP просто видит URL, в котором есть пробел. % 20 (кодированный пробел), возможно, был декодирован до того, как веб-сервер зарегистрировал это.
 Xah Lee12 янв. 2011 г., 21:45
@ Брэд. Спасибо за хорошо информированный ответ. Я разместил новый вопрос здесь.stackoverflow.com/questions/4673809/...
 Xah Lee12 янв. 2011 г., 06:41
протокол http требует кодировки пространства в именах файлов? например в "GET / some thing.html HTTP / 1.1"
 Brad12 янв. 2011 г., 21:49
@Xah Lee, как я не ответил на твой вопрос? Сколько способов я могу ответитьДА требуется.
 Brad12 янв. 2011 г., 16:19
@Xah Lee, я думаю, что RFC довольно ясен. RFC2616 специально ссылается на RFC2396 для форматирования URI. RFC2396 заменяет RFC1738, на который я ссылаюсь в своем ответе. Часть 2.4.3 RFC2396 (rfc-editor.org/rfc/rfc2396.txt) говорит, что «символ пробела исключается, поскольку значительные пробелы могут исчезать, а незначительные пробелы могут вводиться, когда URI транскрибируются, набираются или подвергаются обработке программ обработки текста. Пробел также используется для разделения URI во многих контекстах». Итак, да, кодировка пробела обязательна.

Ваш ответ на вопрос