|
|
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
Приветствую. Можно ли и как запросить длину контента посредством XMLHttpRequest? Метод используется GET. Проблема в том, что сервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок? И ещё один вопрос. Как указать версию протокола при отправке запроса? Допустим надо HTTP/1.0 Я пробовал: Код: javascript 1. выдаёт SYNTAX_ERROR Единственный выход установить заголовок Upgrade? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 21:46 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
Если не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok'); Можно посчитать длину с помощью серверного кода и отдать заголовок Content-Length Посмотрите, если сейчас присутствуют заголовки Transfer-Encoding: chunked и Content-Encoding: gzip , то вряд-ли будет присутствовать заголовок Content-Length (опять-таки если не ошибаюсь), если-бы сервер знал точный конечный размер в байтах, думаю, он и без принудительного требования выдал-бы соответствующий заголовок... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 22:45 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
jancoсервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок?Нельзя. В общем случае, сервер не обязан отдавать этот заголовок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 22:53 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
awsЕсли не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok'); Ну а до ответа, клиент по какой версии запрашивает? vkleНельзя. В общем случае, сервер не обязан отдавать этот заголовок. Да я понимаю, что не обязан, зато хотел попросить его об этом :) Сервер то собственно не мой, я не могу там ничего менять и установить заголовки ответа не могу. Ладно спасибо всем за ответы, понял. Буду с костылями работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 23:38 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
jancoawsЕсли не ошибаюсь, то версию протокола указывает сервер при ответе, например, в php это делается функцией header('HTTP/1.0 200 ok'); Ну а до ответа, клиент по какой версии запрашивает? Проверил сейчас на шаред-хостинге - значение $_SERVER['SERVER_PROTOCOL'] показывает "HTTP/1.0", вне зависимости от GET / POST запроса и заданной версии HTTP, даже если браузер показывает, что будет отправлять следующие заголовки: GET / HTTP/1.1 Host: ... и т.д. видимо, версия HTTP при запросе часто не имеет значения, раз запрос сервером принят, а вот ответ сервера может зависеть от отдаваемых данных (прикреплённый бинарный файл, строка данных, сжатые данные и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 00:32 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
vklejancoсервер не отдаёт заголовки Content-Length. Можно ли как-то от имени клиента "потребовать", что нужен этот заголовок?Нельзя. В общем случае, сервер не обязан отдавать этот заголовок. Чё-то я нифига не понял. Контент-ленгтх, имхо, приходит в запросе. Куда он его нафиг должен отдавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 10:25 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
Можно запросить все заголовки и надеяться, что сервер отдаст Content-Length. Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 15:05 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
ShSergeКонтент-ленгтх, имхо, приходит в запросе.В ответе сервера он тоже может быть. Например, вот это сервер sql.ru на каких-то запросах отдает Content-Length, а на каких-то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 17:16 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
Если сервер свой же, то можно наладить отдачу какого-нить X-Content-Length, в котором указывать размер данных. Если используется Transfer-Encoding: chunked или Content-Encoding: gzip, то в первом случае Content-Length-а нет вообще, а во втором в нём указан размер gzip-данных, который javascript-у всё равно ни о чём не скажет (в этом например глюк xhr-овского progress, который считает количество переданных данных в ungzip, а Content-Length, если выставлен gzip, вообще игнорит, то есть где-то отдельно нужно передавать размер контента без gzip, короче глюк на глюке). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 04:01 |
|
||
|
Как запросить Content-Length через XMLHttpRequest?
|
|||
|---|---|---|---|
|
#18+
aswsвидимо, версия HTTP при запросе часто не имеет значения, раз запрос сервером принят, спасибо, приму во внимание. Antonariy , на запрос HEAD тем более не отдаёт. Если GET то ещё раньше отдавал Content-Length, а HEAD - нет. Теперь и в том и в том случае нет Content-Length. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 19:55 |
|
||
|
|

start [/forum/topic.php?fid=22&gotonew=1&tid=1447435]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 470ms |

| 0 / 0 |
