it-swarm.asia

Tarayıcınızdaki bir web sitesine göz attığınızda tam olarak ne olur?

Bir tarayıcıya www.cnn.com yazarken sahne arkasında ne olur ve ekranda bilgiler nasıl görüntülenir?

Teknik bir açıklama çok takdir edilecektir.

62
Rachel

Browser: "Tamam, öyleyse, bu adresi isteyen bir kullanıcım var: www.cnn.com. Herhangi bir eğik çizgi veya başka bir şey olmadığı için, ana sayfanın doğrudan bir talebi olduğunu düşünüyorum. ayrıca protokol veya bağlantı noktası tanımlanmadı, bu yüzden bunun HTTP olduğunu ve 80 numaralı bağlantı noktasına gideceğini varsayacağım ... ah, önce ilk şeyler. Hey DNS, dostum, uyan! Bu www.cnn.com nerede saklanıyor? "

DNS: "Doğru ... bir saniye bekle, ISS sunucularına soracağım. Tamam, 157.166.226.25 gibi görünüyor."

Browser: "Tamam. İnternet Protokol Paketi, sıra sizde! Çağrı 157.166.226.25, lütfen. Onlara bu HTTP başlığını gönderin. Ana sayfalarının temel yapısını ve içeriğini soruyor, bu yüzden başka ne yapacağımı biliyorum. getir ... ah iyi, sanırım bunu umursamazsın. "

TCP/IP: "Ne demek istiyorsun benim sıram ? DNS? Tanrım, burada biraz takdir almak için ne gerekiyor? ”

Tarayıcı: ...

TCP/IP: "Evet, evet ... Bağlanıyor ... Sadece ağ geçidini iletmesini isteyeceğim. Biliyorsun, bu kadar kolay değil, bölmek zorunda kalacağım. İsteğiniz birkaç parçaya hoş geldiniz, böylece sonuna ulaşırlar ve aldığım binlerce paketten geri gönderdikleri her şeyi toparlar ... ah, doğru, umrunda değil.

Bu arada, CNN karargahında bir mesaj sonunda Web Sunucusunun kapısında sona eriyor.

CNN Web Server: "Nzhôô! Bir müşteri! Haber istiyor! Ön Sayfa! Peki ya?"

CNN Sunucu Tarafı Komut Dosyası Motoru: "Doğru, yapacak! Ön sayfa, değil mi?"

CNN Database Server: "Evet! Benim için çalış! Hangi içeriğe ihtiyacın var?"

CNN Sunucu Tarafı Komut Dosyası Motoru: "... um, üzgünüm DB, ön sayfamın bir kopyasını önbellekte saklıyorum, bir şey derlemeye gerek yok. Ama hey, bu kullanıcı kimliğini alın ve saklayın Bunu müşteriye de göndereceğim, bu yüzden kiminle konuştuğumuzu biliyoruz. "

CNN Veritabanı Sunucusu: "Evet!"

Kullanıcının bilgisayarına geri dön ...

TCP/IP: "Ooookay, işte cevap geliyor. Ah oğlum, neden bunun büyük bir şey olacağı hissine sahibim ..."

Browser: "Ah, vay ... bu her türlü javascript koduna sahip ... resim grubu, birkaç form ... Doğru, bu işlem biraz zaman alacak. Hey, IP sistemi, almanız gereken bir sürü şey var .. Bakalım i.cdn.turner.com adresinden birkaç stil sayfasına ihtiyacım var - HTTP üzerinden ve /cnn/.element/css/ dosyasını isteyin 2.0/common.css.Ve sonra da i.cdn.turner.com'da bu betiklerden bazılarını da alın, şimdiye dek altı tane sayıyorum ... "

TCP/IP: "Resmi yakaladım. Bana sadece sunucu adreslerini ve diğerlerini verin. Bu dosyayı HTTP isteğine sarın, onunla uğraşmak istemiyorum."

DNS: "i.cdn.turner.com adresini kontrol edin ... hey, önemsiz şeyler, aslında cdn.cnn.com.c.footprint.net olarak adlandırılır. IP, 4.23.41.126"

Browser: "Elbette, bir saniye bekle, bu işlemin bir kaç dakikasını alacak, bu komut dosyasını anlamaya çalışıyorum ..."

TCP/IP: "Hey, işte istediğiniz CSS. Oh, ve ... evet, bu ek komut dosyaları da geri döndü."

Browser: "Whew, dahası var ... bir tür video reklam!"

TCP/IP: "Ah evlat, kulağa ne eğlenceli geliyor ..."

Browser: "Her türlü resim de var! Ve bu CSS biraz kötü görünüyor ... doğru, eğer o kısım oraya giderse ve bu çizgiyi en üste çıkarsa ... nasıl olur da artık uygun ... hayır, bunu yapmak için biraz germek zorunda kalacağım ... Oh, ama diğer CSS dosyaları bu kuralı geçersiz kılar ... Peki, bu kolay bir parça olmayacak render, bu kesin! "

TCP/IP: "Tamam, tamam, bir saniye beni rahatsız etmeyi bırak, burada yapmam gereken çok şey var."

Browser: "Kullanıcı, işte sizin için küçük bir ilerleme raporu. Maalesef, bu işlem birkaç saniye sürebilir, yüklenecek 140 farklı öğe var ve şimdiye kadar 16'da olacak."

Bir veya iki saniye sonra ...

TCP/IP: "Tamam, hepsi bu kadar olmalı. Hey, dinle ... üzgünüm sana daha önce fırlattım, orada idare mi ediyorsun? Bu da senin için oldukça yük gibi görünüyor."

Browser: "Phew, evet, bugünlerde tüm bu web siteleri var, sizin için kolay olmadığından eminler. Eh, idare edeceğim. Bunun için buradayım."

TCP/IP: "Bugünlerde hepimiz için oldukça ağır galiba ... oh, orada DNS'i bırakmayı bırak!"

Browser: "Hey kullanıcı! Web sitesi hazır - haberi al!"

131
Ilari Kajaste

Web nasıl çalışır: HTTP ve CGI açıkladı

Ayrıca CERN'den harika bir açıklama - Web alma mater: Web nasıl çalışır?

enter image description here

20
user12925
  • Tarayıcı yazdıklarınızı (URL) bir ana bilgisayar adına ve bir yola böler.
  • Tarayıcı, verilen ana bilgisayar adı ve yoldaki verileri istemek için bir HTTP isteği oluşturur.
  • Tarayıcı, ana bilgisayar adını bir IP adresine çözmek için DNS araması yapar.
  • Tarayıcı, IP adresi ile belirtilen bilgisayara bir TCP/IP bağlantısı oluşturur. (Bu bağlantı aslında her biri verileri diğerine ileten birçok bilgisayardan oluşur.)
  • Tarayıcı, HTTP isteğini verilen IP adresine bağlantıya gönderir.
  • Bu bilgisayar, TCP/IP bağlantısından HTTP isteğini alır ve web sunucusu programına iletir.
  • Web sunucusu ana bilgisayar adını ve yolunu okur ve istediğiniz verileri bulur veya oluşturur.
  • Web sunucusu bu verileri içeren bir HTTP yanıtı oluşturur.
  • Web sunucusu bu HTTP yanıtını makinenize gelen TCP/IP bağlantısını geri gönderir.
  • Tarayıcı HTTP yanıtını alır ve bunu başlıklara (verileri açıklar) ve gövdeye (verilerin kendisi) ayırır.
  • Tarayıcı, tarayıcıda nasıl görüntüleneceğine karar vermek için verileri yorumlar - genellikle bu bilgi türlerini ve genel formlarını belirten HTML verisidir.
  • Verilerin bir kısmı, ayrıntılı düzen için stil sayfaları veya satır içi görüntüler veya Flash filmler gibi yüklenmesi gereken diğer kaynakları belirten meta veriler olacaktır. Bu meta veriler bir URL olarak tekrar belirtilir ve tüm işlem yükleninceye kadar bu işlem her biri için tekrarlanır.
18
Kylotan

İlk adım, DNS (Etki Alanı Adı Sunucusu) aramasıdır. En üst etki alanını (cnn.com) aramak için ağ ayarlarınızda (veya size DHCP tarafından verilen) belirtilen DNS sunucularını kullanır ve daha sonra belirtilen alt etki alanının IP adresini sorar.

IP adresine sahip olduktan sonra, tarayıcınız web sunucusuyla iletişime başlar. Bu, belirtilen protokol (genellikle varsayılan olarak HTTP 1.1) kullanılarak yapılır. HTML belgesi içeriğine ve uygun başlıklara yanıt veren (belgenin içerik türünü, HTML'sini ve diğer bilgilerini tarayıcıya söyleyen) sunucuya '/' için bir 'GET' isteği yapılır. Ardından tarayıcı dokümanı ayrıştırır ve sayfaya yerleştirmesi gereken URL'leri bulur (görüntüler veya bağlantılı stil sayfaları gibi) ve her birinin GET isteklerini yapar.

Tarayıcı ayrıca genellikle otomatik olarak '/favicon.ico' için bir GET isteği yapar (site başlığının yanındaki küçük CNN simgesini görüntülemek için).

Tarayıcınız, istek başlıklarında, gzip algoritmasını kullanarak yanıt içeriğinin sıkıştırılmasını istediğini de belirtecektir. Sunucu destekliyorsa, dosya indirme işlemini çok daha küçük hale getirir. Bir Zip dosyası indirmek ve sıkıştırmasını açmak gibi olsa bile, bu işlem tamamen şeffaftır.

Sayfayı yeniden yüklediğinizde, tarayıcınız o sayfanın sisteminizde zaten önbelleğe alınmış olup olmadığını kontrol eder ve eğer öyleyse, belgenin yalnızca üstbilgisi için bir HTTP isteği yapar ve değiştirildiği tarihi kontrol eder. Bu tarih, önbelleğe alınmış kopyasından sonraysa, tüm belge içeriğini tekrar talep eder ve sayfayı yeniler. Aksi takdirde, sadece yerel kopyanızı kullanır.

12
wahnfrieden

Diğer cevaplardan şimdiye dek kaçırılan CNN tarafında olanlar:

  • CNN'deki bir makine bilgisayarınızdan sayfayı isteyen mesajı alıyor.
  • Bu isteği, CNN'nin web sitesi için kullandığı bilgisayarlardan birine yönlendirir (bunun nedeni, yanıt web sayfalarını birçok bilgisayar üzerinde bir araya getirme çalışmalarını yaymanızdır)
  • CNN bilgisayarı isteğinizi alır ve neredeyse tamamen önceden hesaplanmış bir web sayfasına yanıt verir, ancak belki de size göndermeden önce birkaç şeyi değiştirir (en üstte, belki başlık haberlerinde olabilir). Bazen bilgisayarlar her istek aldığında sayfayı birçok küçük bileşenden birleştirir; CNN'in ne yaptığından emin değilim
  • yanıt ağ üzerinden bilgisayarınıza doğru ilerler ve ardından onu görüntüler.
  • yanıt görüntüleri içermiyordu: bilgisayarınız görüntüler için başka bir istek gönderir ve hemen hemen aynı senaryo gerçekleşir.
8
redtuna

Bu açıkçası teknik bir açıklama değil, ancak bazılarına yardımcı olabilecek sevimli bir görsel yardım (mükemmelden Vladstudio.com ):

How Internet Works

6
grautur

Az önce sorduğun bilgiler birkaç düzine kitabı doldurabilir. Ancak bunu açıklamaya çalıştığım girişim: Tarayıcınız işletim sisteminize cnn.com sitesinin IP adresini bulmasını söylüyor. Ardından işletim sisteminiz cnn.com için IP adresi için bir DNS sunucusu sorar. IP, IP adresiyle iletişim kuran ve sayfayı isteyen broswer'a gönderilir. cnn.com daha sonra size ve html sayfasını gönderir. Tarayıcılar html'yi ayrıştırır ve bilgiyi HTML oluşturucuya gönderir. Tarayıcı daha sonra OS'ye ekranda ne gösterileceğini söyler.

1
AyexeM

Jeff Moser , blogunda bir HTTPS isteğinin mükemmel bir teknik analizini yaptı: HTTPS Bağlantısının İlk Milisaniyesinde .

1
Igal Tabachnik

"Sendung mit der Maus" (çocuklar için teknolojiyi açıklayan çok popüler bir Alman çocuk TV şovu) tarafından hazırlanan harika bir video var:

Internet’te Web’in nasıl işlediğini görebilirsiniz.

Sadece Almanca olarak, maalesef, yazı metni bile komik. Komik kasklı erkekler IP paketlerini çalıyor ve veriler kağıt kartlarına yazıyor. Klasik :-).

Btw, açıklamalar aslında oldukça iyi.

1
sleske