Middle
Ի՞նչ է տեղի ունենում, երբ ձեր բրաուզերում մուտքագրում եք google.com հասցեն։
sobes.tech AI
Պատասխան AI-ից
- URL- ի վերլուծություն: Բրաուզերը վերլուծում է մուտքագրված URL-ը, որոշելով պրոտոկոլը (HTTPS), դոմեյն անունը (google.com) և պորտը (առանցքային 443 HTTPS-ի համար):
- Քեշի որոնում: Բրաուզերը ստուգում է իր DNS-քեշը՝ գտնելու google.com-ի համապատասխան IP հասցեն:
- Հարց DNS resolver-ին: Եթե գրանցում չկա, բրաուզերը խնդրում է IP հասցեն՝ համակարգչի կարգավորումներից:
- Ռեկուրսիվ DNS հարցում:
- Resolver-ը հարցնում է հիմնական DNS սերվերներին:
- Հիմնական սերվերները ցույց են տալիս
.comTLD սերվերներին: .comTLD սերվերները ցույց են տալիս google.com-ի հեղինակային DNS սերվերներին:- Հեղինակային DNS սերվերները վերադարձնում են Google-ի վեբ սերվերի IP հասցեն(երը):
- TCP կապի հաստատում (SYN/ACK): Բրաուզերը սկսում է TCP կապը ստացված IP հասցեով՝ օգտագործելով եռակողմ ձեռնամուխ (SYN, SYN-ACK, ACK):
// Կլիենտ --> Սերվեր: SYN // Սերվեր --> Կլիենտ: SYN-ACK // Կլիենտ --> Սերվեր: ACK - TLS/SSL կապի հաստատում: Քանի որ HTTPS է, տեղի է ունենում TLS/SSL ձեռնամուխ՝ ապահով, կոդավորված կապ հաստատելու համար: Երկու կողմերն էլ փոխանակում են սերտիֆիկատներ և սեսիայի բանալիներ:
- HTTP/S հարցում ուղարկում: Բրաուզերը ուղարկում է GET հարցում Google սերվերին՝ գլխավոր էջը ստանալու համար:
GET / HTTP/1.1 Host: google.com User-Agent: <բրաուզերի մասին տեղեկություններ> Accept: text/html,... - Հարցի մշակումը սերվերում: Google-ի վեբ սերվերը (մոտավորապես բեռի հավասարակշռիչով) ընդունում է հարցը, մշակել, հնարավոր է՝ ներսի ծառայությունների հետ շփվել:
- HTTP/S պատասխան ուղարկում: Սերվերը ձևավորում է HTTP/S պատասխան, որը պարունակում է վիճակային կոդ (օրինակ, 200 OK) և պատասխան բովանդակությունը (HTML կոդը):
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Content-Length: <բովանդակության չափը> // ... այլ գլխագրեր // Պատասխան բովանդակություն (HTML) - Էջի ռենդերավորում: Բրաուզերը ստանում է HTML-ը, վերլուծում և կառուցում է DOM ծառը:
- Ռեսուրսների բեռնում: Բրաուզերը հայտնաբերում է CSS, JavaScript, պատկերներ և այլ ռեսուրսների հղումները HTML-ում: Ամեն ռեսուրսի համար կրկնվում են քայլեր 2-9 կամ օգտագործվում է գոյություն ունեցող կապը, ուղարկվում են հարցումներ և բեռնվում ռեսուրսները:
- CSSOM կառուցում: Բրաուզերը վերլուծում է CSS-ը և կառուցում է CSS Object Model-ը:
- Render Tree կառուցում: DOM և CSSOM միավորվում են՝ ստեղծելով ռենդերային ծառ:
- Տեղակայում (Layout/Reflow): Բրաուզերը հաշվարկում է յուրաքանչյուր տարրերի գեոմետրիան և դիրքը էջում:
- Նկարագրում (Painting): տարրերը նկարագրվում են էկրանին:
- JavaScript-ի գործարկում: Բրաուզերը գործարկում է JavaScript կոդը, որը կարող է փոփոխել DOM-ը, CSSOM-ը և սկսել լրացուցիչ գործողություններ:
- Կապի փակում: Դատարկելուց հետո TCP կապը կարող է փակվել կամ մնալ ակտիվ՝ հաջորդ հարցումների համար (keep-alive):