Каков оптимальный предел для длины URL? 100, 200 +

@ Анджу Сингх, убедитесь, что ваш бэкэнд работает нормально.

Я попробовал запрос на своем локальном компьютере, как и на макете API, и также успешно смог проверить объекты. Исключение, которое вы получили org.apache.http.NoHttpResponseException: localhost: 8080 не удалось ответить, с сервера. Нет проблем от RestAssured или JUnit для решения.

@Test(enabled=true)
    public void sampleTester() {

        EnrollEmail email = new EnrollEmail();
        email.setEmailAddress("sample@domain.com");
        RestAssured.given().contentType(ContentType.JSON).body(email).when().post("https://jsonplaceholder.typicode.com/posts").then()
        .assertThat()
        .statusCode(201);  

    }

    @Test(enabled=true)
    public void sampleTester2() {

        EnrollEmail email = new EnrollEmail();
        email.setEmailAddress("sample@domain.com");
        RestAssured.given().contentType(ContentType.JSON).body(email).when().post("http://localhost:8089/posts").then()
        .assertThat()
        .statusCode(201);  

    }
6
задан sajidnizami 7 October 2008 в 16:29
поделиться

11 ответов

URL является путем + querystring, и связанная статья только говорит об ограничении пути. Поэтому при использовании asp.net не превышайте путь 260 символов. Меньше чем 260 будут всегда работать, и asp.net не испытывает затруднений из-за длинных querystrings.

http://somewhere.com/directory/filename.aspx?id=1234
                                             ^^^^^^^- querystring
                    ^^^^^^^^^^^^^^^^^^^^^^^^ -------- path

Обычно проблема с браузером. Давно я сделал тесты и вспоминаю, что много браузеров поддерживают 4k URL, за исключением IE, который ограничивает его 2083, таким образом, для всех практических целей, ограничьте его 2083. Я не знаю, имеют ли IE7 и 8 ограничение, но если Вы идете в широкую совместимость, необходимо пойти для наименьшего общего знаменателя.

5
ответ дан 8 December 2019 в 13:03
поделиться

Предел по умолчанию в IIS является 16 384 символами

Но IE не поддерживает больше, чем 2083

Больше информации в ссылке

3
ответ дан 8 December 2019 в 13:03
поделиться

Нет никакого предела длины, указанного W3C, но здесь ищите практические пределы

http://www.boutell.com/newfaq/misc/urllength.html

выберите свой собственный предел от этого.

3
ответ дан 8 December 2019 в 13:03
поделиться

Эта статья дает ограничения, наложенные различными браузерами. Кажется, что IE ограничивает URL 2 083 символами, таким образом, необходимо, вероятно, остаться под этим, если какой-либо из пользователей находится на IE.

2
ответ дан 8 December 2019 в 13:03
поделиться

Определите "оптимум" для своего приложения.

Стандарт HTTP имеет предел (он зависит от Вашего приложения):

Протокол HTTP не устанавливает априорной границы длины URI. Серверы ДОЛЖНЫ смочь обработать URI любого ресурса, которому они служат и ДОЛЖНЫ смочь обработать URIs неограниченной длины, если они обеспечивают, ДОБИРАЮТСЯ - базирующиеся формы, которые могли бы генерировать такой URIs. Сервер ДОЛЖЕН возвратить 414 состояний (Request-URI Too Long), если URI длиннее, чем сервер может обработать (см. раздел 10.4.15).

  Note: Servers ought to be cautious about depending on URI
  lengths above 255 bytes, because some older client or proxy
  implementations might not properly support these lengths.

Таким образом, вопрос - каков предел Вашей программы, или каков максимальный размер идентификатора ресурса, Ваша программа должна выполнить всю свою функциональность?

Ваша программа должна иметь естественный предел.

Если это не делает Вы могли бы также засунуть его как 16k, поскольку у Вас нет достаточной информации для определения проблемы.

- Adam

2
ответ дан 8 December 2019 в 13:03
поделиться

Я думаю, что RFC говорит, что 4 096 символов, но IE усекает вниз к 2 083 символам. Останьтесь хорошо под этим для сейфа.

Практически, более короткие URL являются более дружественными.

1
ответ дан 8 December 2019 в 13:03
поделиться

Короткий ;-)

Проблема состоит в том, что каждый веб-сервер и каждый браузер имеют собственные идеи, какой длины максимум. RFC для протокола HTTP не дает максимальной длины. IE ограничивает получение 2 083 символами, сам путь может быть самое большее 2 048 символами. Однако этот предел не универсален. Firefox утверждает, что поддерживал по крайней мере до 65 536, однако некоторые люди проверили, что на некоторых платформах даже 100 000 символов работают. Safari выше 80,000 (протестирован). Сервер Apache, с другой стороны, имеет предел 4 000. Сервер информации об Интернете Microsofts имеет один являющийся 16,384 (но это настраивается).

Моя рекомендация состоит в том, чтобы остаться ниже 2'000 символов в любом случае. Это, как гарантируют, не будет работать с каждым браузером в мире (особенно не более старые), но он будет работать со всеми современными браузерами. Далее я рекомендую использовать POST везде, где возможный (например, избегают использования, ДОБИРАЮТСЯ для ФОРМЫ, отправляет - если некоторые пользователи хотят моделировать ФОРМУ, отправляют через, ДОБИРАЮТСЯ, удостоверьтесь своя поддержка приложений, которую желаемые параметры или по почте или через ПОЛУЧАЮТ, но когда Вы отправляете страницу сами через кнопку или JS, предпочитаете, чтобы POST ДОБРАЛСЯ).

2
ответ дан 8 December 2019 в 13:03
поделиться

Что "оптимально" так или иначе?

ДОБЕРИТЕСЬ запросы могут составить несколько КБ в длине, таким образом, это совершенно субъективно.

Я сказал бы - остаются в длине строки поиска максимизируемого 1024x768 окно, чтобы быть удобным для пользователя.

0
ответ дан 8 December 2019 в 13:03
поделиться

Больше информации необходимо, но для нормальных ситуаций я сказал бы что попытка сохранить ее под 150 наверняка. Если ни для чего иного, чем чистые отшельники, я ненавижу, когда кто-то отправляет мне ссылку GI-NORMOUS...

Вы передаете значения через строку запроса? Я принимаю именно поэтому, что Вы спросили, корректный?

0
ответ дан 8 December 2019 в 13:03
поделиться

Если бы Вы пытаетесь заставить людей помнить URL, я не пошел бы больше чем 60. Используйте слова, если это возможно, потому что легче помнить "www.example.com/this-is-the-url", чем "www.example.com/179264". При попытке индексировать страницу, Вы могли бы, вероятно, пойти больше. Пауки ищут слова в заголовке также, и некоторые люди могут быть более вероятны нажать на ссылку, если URL выглядит читаемым.

0
ответ дан 8 December 2019 в 13:03
поделиться

Когда Вы говорите "Оптимум", я думаю "Легкодоступный Для Пользователей", в этом случае, я думаю чем короче URL, тем лучше. Я думал бы максимум символов 20-30 в этом случае.

0
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: