Что присходит при загрузке вебстранички?

Что присходит при загрузке вебстранички?

Давно хотел структуировать эти мысли, потому что часто приходится это объяснять и всегда получается как то скомкано.

Сокеты.
Все началось с проблемы обмена данными между 2 программами кмк. Есть задача сообщить программе А что 42. Эта проблема сложнее чем кажется. Самый быстрый и очевидный путь - записать в какую то область памяти число 42. Но тут же возникает проблема узнала программа Б что 42 и не упала ли программа А пока писала 42. Так появились сокеты. Сокеты лично я воспринимаю как библиотеку обмена сообщениями, но это довольно абстрактное объяснение, поэтому представьте что сокет это файл. Программа а Пишет в сокет(файл) 42, а программа Б читает из сокета(файла) 42 и стирает число, чтобы программа А поняла, что число прочитано и можно писать следующее. Это первая ключевая особенность сокетов. Из которой вытекает следствие 1. Для того чтобы считать из сокета - программа Б должна знать сколько байт она должна считать и удалить после этого. Вторая ключевая особенность, процесс записи в файл дискретен. Допустим между программой А и сокетом стоит роутер, который режет трафик по 512 байт. Соответственно если программа А пишет в сокет 514 байт, они придут как 512 и 2 байта. Пожалуй с сокетами все, но к ним мы еще вернемся.

Если программа А и Б физически на одной машине - используется Юникс сокеты. Это как локальный файл или шаред мемори если вам проще представить, хотя на самом деле внутри может быть различная реализация для различных ОС.

Транспорт
Если программы на разных машинах. Им нужен какой то транспорт. В вебе используется tcp/ip - протокол. Протокол - это некая договоренность о формате. На самом деле это не совсем транспорт и не совсем протокол. Это транспортный протокол) Суть протокола в том, что он струтктуирует процесс передачи данных. Программа а передает некий запрос, а программа Б говорит да, я готова. Этот процесс называется рукопожатие. Те диалог идет в обе стороны. Бывает еще UDP транспортный протокол, он сервер лесс. Те когда данные отправляются по юдп - они шлются в эфир, сервера между собой не договариваются, он просто шлет куда то 42, в надежде что на том конце кто то его прочитает. Это коротко о транспорте.
Уф, издалека получается но без понимания основ не понять почему так