Raw Request(Ham İstek)

Tarayıcımıza ulaşmak istediğimiz adresi yazıyoruz, kamp.linux.org.tr. Adresi yazdık ve bir request(istek) yapmış olduk. Bu istek tarayıcımızın hazırladığı istek paketiyle yapılıyor. Tarayıcı bir Raw Request http paketi hazırlıyor. Bu paket içerisinde head line, header ve body kısmı bulunur. Head line, yazıldıktan sonra bir crlf yapılır alt satıra geçilir.

Headerlar, yazıldıktan sonra iki kez crlf yapılır ve alt satıra geçilip bir satır daha boşluk bırakılmış olur. Body, yani esas gönderdiğimiz içerik yer alır(bir form doldurmuş ve onu gönderiyor olabilirdiniz buradaki bahsettiğim içerik sizin gönderdiğiniz veriler).

Format Kuralı: Bu raw request paketlerinin formatını RFC topluluk kuralları belirler. Bu kurallara tüm tarayıcılar uymak zorundadır. Aralarında bu şekilde boşluk bırakılmasının sebebi ise, sunucu gelen paketleri parçalayarak işleme alır. Parçalara ayırmayı bu boşluklara göre yapar. Dolayısıyla sunucunun gelen isteği anlayabilmesi için Raw requestler bu formatda olmak zorundadır.

Örnek;

GET /index.html HTTP/1.1  
Host: kamp.linux.org.tr 
Name: Value 
Cookie: ad=hatice; soyad=ergun  
Referer: http://abc.com/a.html
Content-Type: aplication/x-www-form-urlencoded


body

Yukarıda yer alan komutları ekleyelim ve dosyamızı güncelleyelim. Orijinal yazıda ilgili konunun kaynakları yer almaktadır.

İlk satırda methot belirtir, istek yaptığımız sayfayı yazarız. Sunucuya yaptığımız bu raw request istekleri methotlarla yaparız. ( GET, POST, PUT, DELETE…). Eğer bir sayfaya değilde domaine istek yapıyorsak sadece “/” işaretini yaparız ve kullandığımız protokolün adını ve sürümünü yazarız. Bir crlf yaptıktan sonra(alt satıra geçince) headerları yazmaya başlarız. Headerlar giden request paketinde ve gelen response paketinde kullanılırlar. Her header farklı bir bilgiyi taşır.

İki kez crlf yaptıktan sonra body yani sayfa içeriği yazılır ve paket hazırlanmış olur. Hazırlanan bu raw requestinin güvenliği ssl sertifikası ile sağlanır. Bu giden request paketi şifrelenerek gönderilir. Bu sayede zafiyet önlemi alınmış olur.

Header

Yukarıdaki örnekte bir kaç header verdim. Giden request paketinde olmazsa olmaz tek bir header vardır, host headerı.

Host headerı istek yaptığımız adresi gönderir. İstek yapılan adresi bilmeden sunucuya ulaşamayız. Bunun dışındaki giden headerlar olmasa da olur fakat tarayıcılar bu headerları da gönderir. Sadece gönderilen paketde kullanılan headerlar da vardır.

Cookie headerı, adından da anlaşılacağı gibi cookie de bulunan değerleri gönderir.

Referer headerı, bu siteye girmeden bir önceki adresi gönderir. Referans olan sitenin bilgisidir.

Content-Type headerı, body içerisinde gönderilen sayfa içeriğinin, hangi body tipinde gönderildiğinin bilgisidir.

Burada bahsettiğimin dışında bir çok header vardır. Bunlara bir göz atmakta fayda var.(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)

Body Tipleri

form-data, x-www-form-urlencoded, raw, binary.

Request ile gönderilen body (sayfa içeriği) dört farklı tiple gönderilir. Bunların arasında yazı formatı olarak fark vardır. Bu tipler arasındaki farkları postman programıyla görebilirsiniz. Programı indirip key ve value değerlerini girdiğinizde code yazan butona bastığınız zaman seçtiğiniz body tipine göre sayfa içeriğinin nasıl gönderildiğini görebilirsiniz. Tarayıcı bu body tipini gönderilen içeriğe göre kendisi seçer. Body tipini kendiniz belirlemek isterseniz, form içinde enctype ile body tipini verebilirsiniz.

results matching ""

    No results matching ""