Как веб-сервер узнает, кому возвращать результат формы?

Как веб-сервер узнает, кому возвращать результат формы?

Это, наверное, глупый вопрос...

Когда я отправляю онлайн-форму на веб-сервер, как сервер узнает, что именно мне следует вернуть результат?

Я полагаю, что это связано с постоянным http-соединением, но не знаю, почему я так считаю.

Поблагодарил

решение1

Короткий ответ: это происходит из-за TCP-соединения, передающего данные HTTP. Современные веб-сайты и браузеры работают вместе, используя технологии как выше, так и ниже HTTP, чтобы расширить пользовательский опыт.

HTTP сам по себе является протоколом прикладного уровня со стандартными глаголами, такими как GET, POST, HEAD и т. д. Важно понимать, что каждый из этих глаголов является «без состояния», поскольку каждый глагол запрашивается с сервера в полной изоляции от любых других запросов. Также важно понимать, что каждый глагол реализует пару запрос-ответ, так что запрос и его ответ внутренне связаны. Таким образом, обработчики протоколов веб-сервера всегда будут отслеживать информацию о запросе, чтобы он мог отправить ответ.

TCP-соединение представляется приложению как пара потоков ввода-вывода к серверу и с сервера. После установки TCP-соединения приложения просто считывают данные из своего входного потока и записывают данные в свой выходной поток, поэтому нет (допустимого) способа, которым приложение могло бы отправить ответ кому-либо еще, поскольку выходной поток является частью вашего соединения. Загляните в библиотеку Berkeley Sockets, если вам интересны примеры того, как все это работает.

Надеюсь, это поможет. То, как все это работает, сложно и требует некоторого времени, чтобы вникнуть. Просто помните, что сам HTTP — это удивительно простой протокол с очень ограниченным набором операций, и хотя мы вводим дополнительные возможности как ниже, так и выше самого HTTP, они сами по себе не являются частью HTTP.

Связанный контент