С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 12.08.2012
Сообщений: 81

Как браузер узнает на какой http запрос пришел ответ

05.04.2018, 11:56. Показов 3312. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Отправил асинхронный запрос на сервер и не дожидаясь ответа отправил второй асинхронный запрос.
На какой из этих запросов придет ответ? Как браузер понимает к какому запросу относится полученный ответ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2018, 11:56
Ответы с готовыми решениями:

Как отследить с какой страницы пришёл ответ с гугл формы
Здравствуйте. У меня есть ряд страниц, на них есть разные гугл форм, которые соответственно прикреплены к разным доком. Есть задача...

Как узнать от какого контрола с какой формы пришел запрос?
Кликая по Датагрид на одной форме ChoiceFirm, вызываем вторую Firms для редактирования содержимого этого грида. Но вызываемая форма Firms...

На запрос еще не пришел ответ, а код продолжает дальше выполнятся
Здравствуйте. При нажатии кнопки, выполняется запрос, затем должен выйти спарсенный результат (vkKlient.myId). Как только нажимаю кнопку,...

18
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
05.04.2018, 12:31
Цитата Сообщение от lebedun Посмотреть сообщение
На какой из этих запросов придет ответ?
На оба, если не отменить предыдущий запрос

Цитата Сообщение от lebedun Посмотреть сообщение
Как браузер понимает к какому запросу относится полученный ответ?
В качестве примера можно разобрать jquery обертку для пост запроса:
JavaScript
1
2
3
4
5
6
$.post( 
"ajax/test.html", // путь до вашего апи
function( data ) { // функция обратного вызова, которая сработает после ответа от апи для конретно этого запроса
  $( ".result" ).html( data );
}
);
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
05.04.2018, 21:29
посмотрите тему Два запроса ajax -- там есть ссылка на мой работающий пример, где по ответу определяется запрос
0
1 / 1 / 1
Регистрация: 12.08.2012
Сообщений: 81
05.04.2018, 22:44  [ТС]
Может для каждого http запроса создается новое tcp соединение?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.04.2018, 08:16
lebedun, AJAX использует javascript-объект XMLHttpRequest, у которого изначально определяются:
1) свойство отправки запроса к серверу send
и 2) свойство готовности к получению ответа от сервера onreadystatechange на этот запрос

Полагаю, что всё работает абсолютно идентично обычному браузерному запросу -- когда отправляется запрос к серверу, вместе с ним отсылается http-заголовок, в котором содержится однозначный "идентификатор" объекта XMLHttpRequest, который этот запрос сформировал и, разумеется, в ответе сервера этот "идентификатор" из http-заголовка продублирован,
так что если со страницы ушло даже тысяча запросов к серверу (к серверам), страница гарантированно будет "знать", какой из тысячи полученных ответов какому именно запросу соответствует

и ещё раз, "на пальцах" -- положим, на странице имеется сотня тегов <img>, у каждого из которых указан свой src
браузер практически одновременно отсылает сотню запросов на получение графических файлов от серверов по указанным в src URL'ам и получает эти графические файлы через разные промежутки времени (время получения зависит и от размера файла, и от доступности серверов, и от скорости интернет-соединения)
но страница "знает", какой именно файл из сотни полученных в каком именно теге <img> надо отобразить... и отображает безошибочно
и тут ни у кого никаких вопросов не возникает... а с ajax'ом почему-то проблемы...

а ведь механизм работы страницы в обоих случаях один и тот же
0
1 / 1 / 1
Регистрация: 12.08.2012
Сообщений: 81
06.04.2018, 12:01  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
когда отправляется запрос к серверу, вместе с ним отсылается http-заголовок, в котором содержится однозначный "идентификатор" объекта XMLHttpRequest, который этот запрос сформировал и, разумеется, в ответе сервера этот "идентификатор" из http-заголовка продублирован
В каком именно заголовке прописывается этот идентификатор?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.04.2018, 15:50
объект
Цитата Сообщение от lebedun Посмотреть сообщение
В каком именно заголовке прописывается этот идентификатор?
объект XMLHttpRequest формирует обычный http-запрос, а у всякого http-запроса есть заголовок, в котором прописывается служебная информация, иначе называемая "переменными окружения" (например, реферер, IP-адрес клиента и MIME-тип содержимого)
в DOM страницы объект XMLHttpRequest отправивший запрос, получает об этом отметку в виде внутреннего свойства
Получив ответ на запрос, страница в DOM'e находит эту отметку и таким образом однозначно сопоставляет запрос и ответ

точно так же полученный графический файл сопоставляется с Image-объектом, отправившим запрос на этот файл
0
1 / 1 / 1
Регистрация: 12.08.2012
Сообщений: 81
06.04.2018, 17:29  [ТС]
Ответ нашел!!!
Для каждого запроса создается новое TCP соединение со своим сокетом.
Т.е. у каждого свой порт и идентификация запроса происходит на уровне TCP, а не HTTP
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.04.2018, 09:01
lebedun, ага, и именно поэтому вы данную тему озаглавили "Как браузер узнает на какой http запрос пришел ответ" -- чтоб никто не догадался
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.04.2018, 19:04
Цитата Сообщение от kalabuni Посмотреть сообщение
именно поэтому вы данную тему озаглавили "Как браузер узнает на какой http запрос пришел ответ" -- чтоб никто не догадался
Что не так то? ТС задал вопрос и нашел на него верный ответ и выложил тут.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.04.2018, 20:24
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Что не так то?
Да нет, всё отлично
я рад, что ТС'у удалось найти "верный" ответ, заключающийся в том, что объект XMLHttpRequest назван именно так, как он называется, исключительно по приколу
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.04.2018, 20:27
kalabuni, не понимаю к чему этот сарказм. Ведь его ответ действительно верен.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.04.2018, 20:52
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Ведь его ответ действительно верен
Гарантируете?
а пруфом не поделитесь?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.04.2018, 21:56
Цитата Сообщение от kalabuni Посмотреть сообщение
а пруфом не поделитесь?
http протокол работает поверх tcp (сетевая модель OSI) Следовательно на какой именно запрос пришел ответ решается исходя из tcp соединения.
А вот ТС попросил пруф на это
Цитата Сообщение от lebedun Посмотреть сообщение
В каком именно заголовке прописывается этот идентификатор?
и ответа не получил.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
08.04.2018, 00:02
Цитата Сообщение от Jewbacabra Посмотреть сообщение
ТС попросил пруф
не выдумывайте -- ни слова "прошу", ни слова пруф" ТС не употреблял ни в каких формах

объект XMLHttpRequest, во-первых, отсылает запросы именно по протоколу http и ответы получает по этому же протоколу (письмо отправитель кидает в почтовый ящик, а адресату его приносит почтальон, а как именно письма перемещаются между почтовым ящиком и почтальоном (на мотоцикле, на поезде или на собачьих упряжках, или через tcp) адресата и отправителя особо не волнует
во-вторых, объект этот принадлежит документу, а не браузеру, поэтому информация о том, что там решил браузер по поводу принадлежности ответа запросу, она, имхо, для js-программиста вторична, ему важнее -- как документ/страница сопоставляет ответ с запросом, об чём и был мой спич
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 00:06
Цитата Сообщение от kalabuni Посмотреть сообщение
не выдумывайте -- ни слова "прошу", ни слова пруф" ТС не употреблял ни в каких формах
Я процитировал его вопрос (там даже в конце стоит знак вопросительный). Да ладно, в таком случае я это прошу название вот этого заголовка
Цитата Сообщение от kalabuni Посмотреть сообщение
объект XMLHttpRequest формирует обычный http-запрос, а у всякого http-запроса есть заголовок, в котором прописывается служебная информация
ТС имел ввиду как происходит сопостовление ответа конкретному запросу на "низком уровне", если так можно выразится, иначе вопрос смысла не имеет.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
08.04.2018, 00:11
Jewbacabra, пожалуйста -- https://ru.wikipedia.org/wiki/... D0%B8_HTTP
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 00:13
kalabuni, последний раз прошу КОНКРЕТНОЕ название http заголовка
Цитата Сообщение от kalabuni Посмотреть сообщение
в котором содержится однозначный "идентификатор" объекта XMLHttpRequest, который этот запрос сформировал и, разумеется, в ответе сервера этот "идентификатор" из http-заголовка продублирован,
Если и в этот раз не получу ответ, то я прекращаю этот разговор
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
08.04.2018, 00:20
Цитата Сообщение от Jewbacabra Посмотреть сообщение
ТС имел ввиду как происходит сопостовление ответа конкретному запросу на "низком уровне", если так можно выразится, иначе вопрос смысла не имеет.
объект XMLHttpRequest, отправляет запрос по протоколу http -- это явно следует из названия объекта
не знаю, что в вашем понимании "низкий уровень", но, имхо, для JS-программиста важным является то, как страница (документ) сопоставляет ответ с запросом, а не то, как именно это делается на сетевой розетке (сокете)
я не знаю, как именно и в точности работает мобильный телефон, но пользоваться телефоном умею -- только это и требуется JS-программисту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2018, 00:20
Помогаю со студенческими работами здесь

Как отправить запрос HTTP, а в ответ получаемую страницу не показывать пользователю?
Как отправить запрос HTTP, а в ответ получаемую страницу не показывать пользователю? я делаю это на Javascript но почему то получается...

Как передать Http get запрос, вложить в него json с токеном и настройками и получить ответ
Здравствуйте, подскажите, уже поломал голову, на Node Js получается, обычные запросы тоже принимаю, а вот подключиться используя...

Почему ответ на GET запрос из Python отличается от ответа на GET запрос из HTTP Analyzer
Добрый день. Делаю GET запрос из HTTP Analyzer Указываю только адрес запроса: https://www.nn.ru/community/sp/food/ Получаю ответ -...

Ответ на http запрос
Доброго времени суток. Есть http-сервер (ниже обработчик запроса): private HttpListener listener; public void NewUser(object obj) { ...

Как и чем можно посмотреть какой запрос отправил браузер? (для новичков)
вот пример меню: www.bet-at-home.com/en/sport/results Нужно изменить Period. Кликаю, выпадает окошко, перемещаю мышку на, например, 12...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru