WWW’nin İletişim Protokolü : HTTP – 2/2

Bir önceki yazımızda HTTP’nin genel yapısından ve request-response konularına yüzeysel olarak değindik. Bu yazımızda Request ve Response kavramlarını detaylıca inceleyeceğiz.

HTTP Request

Bir HTTP isteğinin çeşitli metodları olduğunu bir önceki yazımızda görmüştük. GET ve POST gibi çok kullanılan metodları uygulamalı olarak inceledik. Şimdi bir HTTP isteğinin genel yapısına göz atalım.

“method” olarak belirtilen yer bildiğiniz gibi HTTP metodları: GET, POST, PUT vs..

“url” istek yapmak istediğimiz URL: http://serkancay.com/category/web gibi..

“version” HTTP versiyonu: HTTP/1.1

“headers” isteğimiz için başlık bilgileri. Şu ana kadar “host” header’ını gördük ve 1.1 versiyonunda kullanımı zorunluydu. Ancak bir HTTP isteğinin ihtiyaca göre birçok başlık bilgisi olabilir. Bunlara bir göz atalım..

HTTP Request Headers

Referer: İsteğin geldiği URL bu header ile iletilebilir. Daha çok istatistik amaçlı kullanılan bu başlık bilgisi, nerelerden daha çok trafik geldiğini anlamada kolaylık sağlar.

User-Agent: İsteğin hangi yazılım aracılığıyla yapıldığı iletilir. Bu daha çok tarayıcı bilgisi içerir.

Accept: İsteği yapan kullanıcının kabul etmek istediği kaynaklar belirtilir. Örneğin kullanıcı bir HTML kaynağı istiyorsa “Accept: text/html” şeklinde başlık bilgisi belirtilir.

Accept-Language: Kullanıcı dilini tanımlar.

Cookie: Kullanıcıyı izlemek için kullanıcıya verilen benzersiz değerdir. Güvenlik olarak üzerinde en çok durulması gereken kısımdır bana göre 🙂

Tüm bu bilgilere dayanarak tam bir HTTP Request aşağıdaki şekilde olabilir:

Burada “Accept” header’ı üzerine yoğunlaşırsak ilk olarak HTML belirtilmiş sonra XHTML ve XML belirtilmiş ve en sonunda */* şeklinde bir ifade bırakılmış. Bunun anlamı bana mümkünse HTML gönder fakat herhangi bir şeyde gönderebilirsin. “q” ile belirtilen alanlar tercih edilme oranı olarak tanımlanabilir. Aldığı değerler 0-1 arasındadır. Yüksek değer öncelikli tercihi gösterir.

HTTP Response

İstek yapıldıktan sonra bize bir cevap döneceğini artık biliyoruz. HTTP Response’un genel yapısına göz atalım:

Burada farklı olarak “status” ve “reason” görmekteyiz. Status alanı bir koddan ibarettir. Örneğin: 404. Reason ise bir sebep belirtir. Örneğin istek başarıyla alınmış ve herşey yolundaysa “OK” şeklinde reason döner.

Aşağıda örnek bir HTTP Response mevcuttur:

HTTP Response Codes

Geri dönen response kodlarını kategorilendirmek mümkündür.

100-199: Bilgilendirici

200-299: Başarılı

300-399: Yönlendirme

400-499: İstemci Taraflı Hata

500-599: Sunucu Taraflı Hata

Bunların yanı sıra çok karşılaşılan hata kodlarını da bilmekte fayda var. Buradan inceleyebilirsiniz.

Artık HTTP, Request ve Response kavramlarını biliyoruz. Umarım faydalı olmuştur..

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir