Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ограничение длины URL веб-хостинга?

Автор вопроса: Isaac WallerОтветов: 3

Я разрабатываю веб-приложение, связанное с моим приложением для iPhone. Он отправляет на веб-сервер очень большие URL-адреса (около 15000). Я был с помощью NearlyFreeSpeech.net, но они поддерживают только URL-адреса до 2000 символов. Мне было интересно, знает ли кто-нибудь о веб-хостинге, который будет поддерживать действительно большие URL-адреса? Спасибо, Исаак

Изменить: моей программе необходимо открыть изображение в Safari. Я мог сделать это двумя способами:

  • отправить его в кодировке base64 в URL-адресе и просто повторить параметры запроса.
  • сначала отправьте его на сервер в моем приложении, затем сервер отправит обратно уникальный идентификатор после сохранения фотографии в базе данных, который я бы добавил к URL-адресу, который я бы открыл в Safari, который извлек фотографию из базы данных и удалил ее из базы данных.

Видите ли, я ленив и знаю, что Mobile Safari может поддерживать URI до 80 000 символов, так что я думаю, что это нормальный способ сделать это. Если с этим действительно что-то не так, скажите, пожалуйста.

Изменить: я сделал это правильным способом POST. Спасибо.

  • Не могли бы вы объяснить, почему он отправляет такие большие URL-адреса? Patrick Glandien 05.04.2009
  • Этот вопрос stackoverflow.com/questions / 1266176 / содержит подробную информацию о загрузке изображения для приложения iphone с помощью сообщения. Toby Allen 19.06.2012

urlweb-hosting

Ответы

Ответ 1 · рейтинг 19 · ceejayoz

Если вы отправляете URL-адреса длиной 15 000 символов, по всей вероятности:

альтернативный текст http://img16.imageshack.us/img16/3847/youredoingitwronga.jpg а>

Вместо этого используйте что-то вроде HTTP POST.

Ограничения, с которыми вы сталкиваетесь, не столько проблема хостов, сколько тот факт, что веб-серверы имеют ограничение на длину URL-адреса. Согласно этой странице, Apache ограничивает вас примерно 4 КБ символов, а IIS ограничивает вас до 16k по умолчанию.

Ответ 2 · рейтинг 3 · Bobby Jack

Хотя он не дает прямого ответа на ваш вопрос и не существует официальной максимальной длины URL-адреса, браузеры и серверы имеют практические ограничения - см. http://www.boutell.com/newfaq/misc/urllength.html для получения дополнительной информации. Короче говоря, поскольку IE (по крайней мере, некоторые используемые версии) не поддерживают URL-адреса длиной более 2083 символа, вероятно, будет разумным оставаться ниже этой длины.

Ответ 3 · рейтинг 2 · Brian Campbell

Если вам нужно просто открыть его в Safari, и сервер не должен быть задействован, почему бы не использовать _ 1_ URI?

Отправка длинных URI по сети никогда не будет правильным решением. Как вы заметили, некоторые веб-хосты не поддерживают длинные URI. Некоторые прокси-серверы также могут подавляться длинными URL-адресами, что означает, что ваше приложение может не работать для пользователей, которые находятся за этими прокси. Если вам когда-нибудь понадобится перенести приложение в другой браузер, другие браузеры могут не поддерживать URI так долго.

Если вам нужно передать данные на сервер, используйте POST. Да, это дополнительный круговой обход, но он будет намного надежнее.

Кроме того, если вы загружаете данные на сервер с помощью запроса GET, вы уязвимы для всех видов перекрестных -подделка запросов сайта атаки; По сути, злоумышленник может обманом заставить пользователя загрузить, скажем, goatse в свою учетную запись, просто заставив его щелкнуть ссылку (возможно, скрытую TinyURL или другой сервис сокращения URL-адресов, или просто встраивают в виде ссылки на веб-страницу, когда они не смотрят внимательно на URL-адрес, на который они нажимают).

Вы никогда не должны использовать GET для отправки данных на сервер, кроме параметров запроса, которые фактически ничего не меняют на сервере.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы