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

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

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

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

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

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


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


Ответы (3)


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

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

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

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

person ceejayoz    schedule 05.04.2009
comment
Жесткое ограничение в IIS 6 - 32 767 символов. - person George V. Reilly; 05.04.2009
comment
Я уже достиг этого предела :( Используя Google Charts API - person mpen; 05.04.2009
comment
РЖУ НЕ МОГУ. Совет: защитите этот пост от комментариев LOL. - person abel; 04.10.2010
comment
@ceejayoz: где мне изменить лимит IIS? - person Kumaran T; 21.07.2011
comment
@ Кумаран, я думаю, ты упустил суть. ТЫ ДЕЛАЕШЬ ЭТО НЕПРАВИЛЬНО. - person ceejayoz; 21.07.2011

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

person Bobby Jack    schedule 05.04.2009

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

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

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

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

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

person Brian Campbell    schedule 05.04.2009
comment
Привет, в этом вся суть - но в openURL есть СУПЕР досадная ошибка: не позволяет открывать данные: uris. Итак, мой веб-сайт принимает данные в кодировке Base64, превращает их в uri данных и перенаправляет вас туда :( - person Isaac Waller; 05.04.2009
comment
Если они этого не поддерживают, то я думаю, вам нужно будет пойти по маршруту POST. Большие объемы данных в URL-адресе вызовут у вас все виды проблем совместимости, а зеркальное отображение данных из запроса GET вызовет всевозможные проблемы с подделкой межсайтовых запросов. - person Brian Campbell; 05.04.2009