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

StackOverflow https://stackoverflow.com/questions/718205

  •  23-08-2019
  •  | 
  •  

Вопрос

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

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

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

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

Редактировать: В итоге я сделал это правильным способом POST.Спасибо.

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top