URL-адреса HTTPS длиной более 1024 символов работают ТОЛЬКО в Chrome

#php #ajax #url #https #maxlength

#php #ajax #url #https #максимальная длина

Вопрос:

Я столкнулся со странным поведением почти каждого браузера на моем ноутбуке — URL-адреса HTTPS длиной более 1024 символов работают только в GC. FF, IE, Opera, Safari — ни один из них не загружает данные с сервера.

У меня есть веб-приложение, которое использует AJAX для извлечения данных JSON для моих таблиц. И когда к данным применяются некоторые фильтры, условия поиска (для каждого столбца) отправляются через GET (я использую DataTables). URL (URI?) Легко достигает 900 или 1000 символов, что по-прежнему нормально, все идет хорошо…

Но затем — есть потребность в том, чтобы веб-приложение работало через Cisco WebVPN (SSLVPN Service), и это переписывает URL-адреса и добавляет токены … так что URL становится длиннее 1024 символов, и вот тут все идет под откос — только в Chrome я получаю ответ.

Отправляет ли GC какой-либо «короткий» относительный путь на сервер, а другие браузеры нет? В консоли это так не кажется… Это ошибка сервера или всех браузеров? Я не смог найти никакой информации о таком ограничении в браузерах… и браузеры говорят, что сервер сбросил соединение — возможно, интерфейс CISCO? Но почему тогда это работает в GC?

Я ввел недопустимый (несуществующий) путь в URL-адресе, и снова только GC сообщает мне, что ресурс не найден на сервере — все остальные говорят точно то же самое, что и раньше — сервер сбросил соединение…

Переход на POST — это ПОСЛЕДНЕЕ, что я хотел бы сделать, потому что это БОЛЬШОЙ проект с множеством различных «веб-просмотров» данных, и каждый из них специфичен.JS и .Скрипты PHP — так много работы и так мало времени! ;(

Есть идеи, как это санировать?

Комментарии:

1. Установлен ли на вашем веб-сервере mod_spdy? Chrome знает, как использовать протокол SPDY, а не HTTP, в чем может быть разница. Кроме того, что делать с инструментами командной строки, такими как curl и wget ?

2. Вопросы о том, как отвечает ваш веб-сервер, не по теме здесь, в StackOverflow. Вы можете задать такие вопросы на webmasters.stackexchange.com или в serverfault.com

3. @stephen Да, сервер обрабатывает запросы без каких-либо проблем… Мне удалось разобраться с этим, спасибо за ваш совет по изучению сервера — хотя это не вина серверов, я нашел виновного! 🙂

4. Можете ли вы опубликовать решение в качестве ответа, чтобы другие люди, у которых есть проблема, также могли воспользоваться этим вопросом?

5. Я опубликовал это, но … это не «решение», это скорее описание того, что происходит и кто виноват…

Ответ №1:

Извините, что мне приходится самому отвечать на свой вопрос, но таким образом вопрос (и ответ) будут доступны другим, которые могут столкнуться с подобными проблемами.

Виноват Cisco WebVPN (служба SSLVPN) — она не может обрабатывать запросы длиной более 1024 символов. И это, собственно, все.

Я не нашел способа настроить это ограничение конфигурации в маршрутизаторе Ciscos, поэтому мне придется просмотреть код и переместить все в запросы POST … : (