Чи може хтось сказати мені, що все відбувається за кадром, від моменту введення URL-адреси у веб-переглядачі до моменту, коли я переглядаю сторінку в браузері? Детальний опис процесу може бути дуже корисним.
Чи може хтось сказати мені, що все відбувається за кадром, від моменту введення URL-адреси у веб-переглядачі до моменту, коли я переглядаю сторінку в браузері? Детальний опис процесу може бути дуже корисним.
Відповіді:
Увага: це надзвичайно груба і спрощена ескіз, припускаючи найпростіший можливий HTTP-запит (без HTTPS, без HTTP2, без додаткових даних), найпростіший можливий DNS, відсутні проксі, односкладний IPv4, лише один запит HTTP, простий сервер HTTP на інший кінець, і жодних кроків немає проблем. Це для більшості сучасних намірів і цілей нереальний сценарій; все це є набагато складнішим у фактичному використанні, а технологічний стек став на порядок складнішим, оскільки це було написано. Зважаючи на це, така часова шкала все ще дещо діє:
Знову ж таки, обговорення кожного з цих пунктів заповнило незліченну кількість сторінок; сприймайте це лише як підсумок, скорочене задля ясності. Також паралельно з цим відбувається багато інших речей (обробка введеної адреси, спекулятивне попереднє завантаження, додавання сторінки до історії веб-переглядача, показ прогресу користувачеві, сповіщення плагінів та розширень, надання сторінки під час завантаження, конвеєрування, відстеження з'єднання для зберігайте життя, керування файлами cookie, перевірка на наявність шкідливого вмісту тощо) - і вся операція набирає на порядок складніші з HTTPS (сертифікати та шифри та закріплення, о, мій!).
Спочатку комп’ютер шукає хоста призначення. Якщо він існує в локальному кеш-пам'яті DNS, він використовує цю інформацію. В іншому випадку запит DNS виконується, поки не буде знайдена IP-адреса.
Потім ваш браузер відкриває TCP-з'єднання до цільового хоста та надсилає запит відповідно до HTTP 1.1 (або може використовувати HTTP 1.0, але звичайні браузери більше не роблять цього).
Сервер шукає необхідний ресурс (якщо він існує) і відповідає за допомогою протоколу HTTP, надсилає дані клієнту (= вашому браузеру)
Потім браузер використовує HTML-аналізатор, щоб відновити структуру документа, яка згодом буде представлена на екрані. Якщо він знаходить посилання на зовнішні ресурси, такі як зображення, файли css, файли javascript, вони передаються так само, як і сам документ HTML.
Знайдіть специфікацію HTTP. Або для початку спробуйте http://www.jmarshall.com/easy/http/