Web Hacking Başlangıç
1 sayfadaki 1 sayfası
Web Hacking Başlangıç
HTTP’e Giriş
HTTP(Hypertext Transfer Protocol) OSI modelinde uygulama katmanında yer
alan iletişim protokolüdür. Günümüzde zamanımızın çoğunu geçirdiğimiz
sanal dünyada en sık kullanılan protokoldür. (%96 civarında)
HTTP Nasıl Çalışır?
Http’nin istemci-sunucu mantığıyla çalışan basit bir yapısı vardır. Önce
TCP bağlantısı açılır, kullanıcı istek(HTTP isteği) gönderir sunucu da
buna uygun cevap döner ve TCP bağlantısı kapatılır.
İstemci(kullanıcı) tarafından gönderilen istekler birbirinden
bağımsızdır ve normalde her HTTP isteği için bir TCP bağlantısı gerekir.
HTTP’nin basitliğinin yanında günümüz web sayfaları sadece http
sunuculardan oluşmaz, çoğu sistemin bilgilerini tutmak için kullanılan
veritabanları da artık web sayfalarının vazgeçilmez bileşeni olmuştur.
Yukarıdaki resim klasik bir web sayfasını temsil eder. Buna göre web
sayfalarımız ister web sunucuyla aynı makinede olsun ister başka bir
makinede olsun bir veritabanına bağımlıdır.
Web’in çalışma mantığı istek ve cevaplardan oluşur, istekler ve bunlara
dönülecek cevaplar farklıdır. Bu konuda detay için HTTP RFC’si 2616
incelenebilir.
Yapılan isteğin çeşidine göre sunucudan dönecek cevap da farklı
olacaktır. Mesela istenen dosya sistem üzerinde yoksa 404 cevabı, gelen
istek izni olmayan bir dosyayı istiyorsa 403 forbidden cevabı
dönecektir.
HTTP ve TCP ilişkisi
HTTP TCP kullanan bir protokoldür. Her HTTP bağlantısı öncesinde mutlaka
TCP bağlantısı kurulmalıdır. Basit bir hesapla her HTTP bağlantısı için
ortalama 10 adet TCP paketi gidip gelmektedir(3 adet TCP bağlantı
başlangıcı, 4 adet TCP bağlantı koparılması, 2-3 adet de HTTP isteği ve
buna dönecek cevap paketlerinin taşındığı TCP paketleri).
Bu da klasik HTTP kullanımında performans sorununu beraberinde getirir.
Günümüzde normal bir haber portalının yüklenmesi için ortalama 40-50
HTTP GET isteği gönderilmektedir. Bunu da hesaplarsak portal sayfasının
açılması için ortalama 50X10=500 TCP paketinin gidip gelmesi gerekir ki
bu değer haber kullanıcıyı okumaktan vazgeçirecek kadar fazladır.
HTTP’de bu performans sorununu aşabilmek için çeşitli yöntemler
geliştirilmiştir. Bunların başında HTTP KeepAlive(persistent connection)
özelliği gelmektedir. HTTP Keep Alive özelliği her HTTP isteği için
ayrı bir TCP bağlantısı açmak yerine bir adet TCP bağlantısı içerisinden
belirli sayıda (5, 10, ..) HTTP isteğinin aktarılabilmesini sağlar.
Kaynak:
webgüvenliği
HTTP(Hypertext Transfer Protocol) OSI modelinde uygulama katmanında yer
alan iletişim protokolüdür. Günümüzde zamanımızın çoğunu geçirdiğimiz
sanal dünyada en sık kullanılan protokoldür. (%96 civarında)
HTTP Nasıl Çalışır?
Http’nin istemci-sunucu mantığıyla çalışan basit bir yapısı vardır. Önce
TCP bağlantısı açılır, kullanıcı istek(HTTP isteği) gönderir sunucu da
buna uygun cevap döner ve TCP bağlantısı kapatılır.
İstemci(kullanıcı) tarafından gönderilen istekler birbirinden
bağımsızdır ve normalde her HTTP isteği için bir TCP bağlantısı gerekir.
HTTP’nin basitliğinin yanında günümüz web sayfaları sadece http
sunuculardan oluşmaz, çoğu sistemin bilgilerini tutmak için kullanılan
veritabanları da artık web sayfalarının vazgeçilmez bileşeni olmuştur.
Yukarıdaki resim klasik bir web sayfasını temsil eder. Buna göre web
sayfalarımız ister web sunucuyla aynı makinede olsun ister başka bir
makinede olsun bir veritabanına bağımlıdır.
Web’in çalışma mantığı istek ve cevaplardan oluşur, istekler ve bunlara
dönülecek cevaplar farklıdır. Bu konuda detay için HTTP RFC’si 2616
incelenebilir.
Yapılan isteğin çeşidine göre sunucudan dönecek cevap da farklı
olacaktır. Mesela istenen dosya sistem üzerinde yoksa 404 cevabı, gelen
istek izni olmayan bir dosyayı istiyorsa 403 forbidden cevabı
dönecektir.
HTTP ve TCP ilişkisi
HTTP TCP kullanan bir protokoldür. Her HTTP bağlantısı öncesinde mutlaka
TCP bağlantısı kurulmalıdır. Basit bir hesapla her HTTP bağlantısı için
ortalama 10 adet TCP paketi gidip gelmektedir(3 adet TCP bağlantı
başlangıcı, 4 adet TCP bağlantı koparılması, 2-3 adet de HTTP isteği ve
buna dönecek cevap paketlerinin taşındığı TCP paketleri).
Bu da klasik HTTP kullanımında performans sorununu beraberinde getirir.
Günümüzde normal bir haber portalının yüklenmesi için ortalama 40-50
HTTP GET isteği gönderilmektedir. Bunu da hesaplarsak portal sayfasının
açılması için ortalama 50X10=500 TCP paketinin gidip gelmesi gerekir ki
bu değer haber kullanıcıyı okumaktan vazgeçirecek kadar fazladır.
HTTP’de bu performans sorununu aşabilmek için çeşitli yöntemler
geliştirilmiştir. Bunların başında HTTP KeepAlive(persistent connection)
özelliği gelmektedir. HTTP Keep Alive özelliği her HTTP isteği için
ayrı bir TCP bağlantısı açmak yerine bir adet TCP bağlantısı içerisinden
belirli sayıda (5, 10, ..) HTTP isteğinin aktarılabilmesini sağlar.
Kaynak:
webgüvenliği
1 sayfadaki 1 sayfası
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz