0% found this document useful (0 votes)
26 views16 pages

5 - HTTP

Uploaded by

bayrakmeliksah17
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views16 pages

5 - HTTP

Uploaded by

bayrakmeliksah17
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

HTTP

HTTP
• Açılımı “Hyper Text Transfer Protocol” olan bu protokol bilginin sunucudan kullanıcıya nasıl ve ne şekilde aktarılacağını
gösteren protokoldür.
• Temel olarak web sayfalarının görüntülenmesini sağlayan protokoldür. HTTP, kullanıcı bilgisayarı ve sunucu(server)
arasındaki veri alışverişinin kurallarını belirler. Bu protokolü kullanmak için tarayıcı kullanılır.
• Tarayıcılar yardımı ile herhangi bir internet sitesine girmek için adres çubuğuna sitenin adresini yazdığınız vakit HTTP ile
sunucuya bir istek gönderilir ve sunucu bu isteğe cevap verdiği vakit internet sitesinin verileri size gelir. Yani internet
sitesine girmiş olursunuz.
HTTPS- Secure Hyper Text Transfer Protocol
• Temelde HTTP ve HTTPS protokolleri aynı işi yapar fakat HTTPS’ de
güvenlik öne çıkar. HTTP protokolüne SSL sertifikası eklenerek oluşur.
Kısacası internet sitelerinin metinlerle kurduğu bağlantının
şifrelenmesidir.
• HTTP, herhangi bir siteye bağlanmak istediğiniz zaman isteğinizi alıp,
sunucuya iletir ve siteye girişinizi sağlar. HTTPS de aynı işlevi görür.
Farkı ise HTTPS protokolü ile bir siteye bağlandığınız zaman güvenlik
önlemleri daha ağırdır ve bilgileriniz asla başkaları tarafından
okunamaz.
HTTP istek metodları
• Sunucu ile istemci arasında iletişim kuran HTTP protokolü, sunucuya yaptırılmak isteneni,
aşağıdaki metotlar aracılığıyla bildirir
• GET Sunucudaki kaynaklara erişim (okuma) metotudur. Sunucudan veri çeker.
• POST Sunucudaki kaynaklara veri yazabilir.
• PUT Sunucudaki kaynakları güncelleyebilir.
• PATCH Belirli kaynağın bir kısmını güncelleyebilir. (PUT’tan hızlıdır.)
• DELETE Sunucudaki kaynakları silebilir.
• CONNECT Kaynağa erişmek için, proxy gibi birden fazla hedef kullanabilir.
• HEAD Sunucu hakkında bilgi alabilir.
• OPTIONS Sunucuda kullanılacak metotlar hakkında bilgi alabilir.
• TRACE Sunucu ile istemci arasında başka hedef olup olmadığını kontrol edebilir. (Teşhis)
• SEARCH Belirli bir kaynağın altındaki kaynakları da sorgulayabilir.
GET vs. POST
• GET methodu kullanıldığında istekler URL kısmında
gönderilir. Gönderilen bilgiler URL’de görüntülendiği
için güvenlik riski yüksektir ancak POST metoduna
göre daha hızlıdır.
• POST metodu ise URL’de görüntülenmesi
istemediğimiz istekler için kullanılır. Gönderilen bilgiler
URL’de görünmediği için daha güvenlidir
ancak GET methoduna göre daha yavaştır.
Yani POST metodunda form alanları HTTP REQUEST
HEADER içinde kodlanmış olarak gider, URL’de
gözükmez. POST işleminde her türlü dosyayı post
edebiliriz: XML,Image, File post edebiliriz.
• GET ile veri göndermede karakter limiti
varken POST’ta böyle bir limit yoktur. Karakter
limiti GET metodunda 2048 karakterdir.
GET vs. POST
• sunucuya bir bilgi talebinde bulunuyorsak GET, sunucuya
bilgi talebinde bulunmadan sunucuya bilgi göndermek
istiyorsak POST metodları kullanıyoruz.
• Örneğin ben bir web sayfasına girmek istersem GET metodu
ile bu web sayfasını çağırırım. Ama girdiğim web sayfasında
bir üye kayıt formu varsa, web sayfasına yazacağım kullanıcı
adı ve şifre bilgisini POST metodu ile sunucuya gönderirim.
• GET request’ in sadece header kısmı var fakat POST request’
in hem header hem body kısmı var. Bunun nedeni eğer siz bir
form içinde bilgilerinizi girip sunucuya gönderiyorsanız bu
bilgiler body içinde paketlenip gönderilir.
• Eğer giden istek başarılı ise 200 response kodu ile http
request mesajı tarayıcıya gönderilir. Biz bunu görmeyiz fakat
tarayıcı bunu anlar. HTTP response paketinde sadece header
olabileceği gibi body kısmı ile kullanıcıya html, json vb..
Formlar gönderilebilir.
Örnek
• Biz sunucuya http metodları göndeririz, sunucu da bize durum kodları ile cevap verir. Metodlar bizden sunucuya doğru olan
trafiği içerir. Şimdi mesela firefox ta [Link]’ a gidelim. Olup biteni görmek için F12 ile oluşan trafiği görelim.

• [Link]’ un anasayfasına (/) get metodu ile istek gönderdik.


HTTP yanıt
• HTTP yanıtı (HTTP Response), istemcinin (genellikle tarayıcıların) gönderilen bir
HTTP isteğine cevap olarak hedef yada ara sunuculardan aldığı yanıttır. Gönderilen
HTTP isteği ile iletilen verilere bağlı olarak sunucu tarafından oluşturulan HTTP
yanıtı ile gelen HTTP isteğine karşılık gelen datalar istemciye iletilir.
• Tipik bir HTTP yanıtı aşağıdaki bileşenlerden oluşur ;
• HTTP yanıt satırı (HTTP response line) Örn: Üstteki görselde HTTP/1.1 200 OK
bölümü HTTP yanıt satırıdır.
• HTTP protokolünün versiyonu (version of the HTTP protocol)
• HTTP yanıt kodu (200,301,404,500 vb) (HTTP Status code)
• HTTP yanıt kodu mesajı (HTTP status message)
• HTTP yanıt başlıkları (istek başlıklarına benzer)
• Duruma bağlı olarak istek gönderilen kaynağa yönelik dataları içeren HTTP gövdesi
(HTTP response body)
HTTP Yanıt Başlıkları
• Genel (General): Yanıttan bağımsız, HTTP
bağlantısı ile alakalı genel bilgileri içeren
başlıklardır.
• Response Başlıkları: HTTP yanıtı ve sunucu
ile alakalı doğrudan bilgileri içeren
başlıklardır. Örn: Vary, Accept-ranges vb.
HTTP Başlıkları (Headers)
• HTTP iletişimi sırasındaki tarafların, erişilmek istenen kaynak için iletişimin nasıl gerçekleşeceği yönünde
tanımlayıcı bilgileri belirttiği alandır.
• HTTP isteklerindeki header bölümünde bulunan parametreler şöyledir.
• Host Erişilmek istenen web server’ın adres bilgisi yer alır.
• User Agent Client; tarayıcı adı, versiyonu ve işletim sistemi bilgilerine yer verir.
• Accept Client, hangi dosya tiplerinin kabul edilebileceğini belirtir.
• Accept-Language Client, hangi dillerde görüntüleme tercih ettiğini belirtir.
• Accept-Encoding Client, hangi türde sıkıştırma kabul edebileceğini belirtir.
• If-Modified-Since Client, erişmek istediği kaynağın önbelleğindeki tarihini belirtir. Değişiklik kontrolü için.
• Cookie Client, daha önceki ziyaretini, oturumunu ve kendini tanımlayıcı bilgileri belirtir.
• Referer Client, yeni yönlenilen bir URL’e, referans vermiş olan URL bilgisini belirtir.
• Authorization Erişmek istenen kaynak için doğrulama metodu ve içerik belirtilir.
HTTP Başlıkları (Headers)
• HTTP cevaplarındaki header bölümünde bulunan parametreler şöyledir:

• Cache-Control İçeriğin önbellekte tutulup tutulamayacağını ve süresini bildirir.


• Content-Type İçeriğin türü ve ilgili dosya tipi bildirilir.
• Content-Lenght İçeriğin byte cinsinden boyutu bildirilir.
• Etag Önbelleğe alınacak içeriği tanımlayıcı bir ID bildirir.
• Last-Modified İçeriğin en son ne zaman değiştirildiğini bildirir.
• Location İçeriğin bulunduğu konumu bildirir.
• Set-Cookie Alınan cookie bilgisinin ayarlanması veya değiştirilmesi bilgisini bildirir.
• www-Authenticate İçeriğin erişimi için geçerli doğrulama metodunu bildirir.
• Content-Encoding İçeriğin encode edildiği ve encode türü bilgisini bildirir.
• Server İçeriği işleyen sunucuyu bildirir.
• Date Cevabın işlendiği zamanı bildirir.
• Keep-Alive Bağlantının saniye cinsinden ne kadar süre açık tutulacağını bildirir.
• Connection Bağlantının açık kalıp kalmayacağı bildirir.
HTTP Durum Kodları
• Özetleyecek olursak kullanıcılar bir web sitesini ziyaret etmek istediklerinde iki
taraflı bir iletişim ortaya çıkar. Bu iletişimin bir tarafında tarayıcı bulunurken
diğer tarafta sunucu yer alır.
• Bu iletişim kullanıcının bir web sayfasına giriş yapmak istemesiyle başlar. Bir
web sayfasına giriş yapan kullanıcı aslında tarayıcı aracılığıyla ilgili web
sayfasının yer aldığı sunucuya sayfayı görüntülemek için bir istek gönderir.
Sunucu ise bu isteğe üç haneli bir durum kodu ile yanıt verir. Sunucunun
tarayıcıya verdiği üç haneli cevaplar HTTP durum kodları ya da HTTP status
codes olarak adlandırılır.
• Kısaca, Sunucu ile istemci arasındaki HTTP iletişiminde gerçekleşendurumları
istemciye bildiren sayısal kodlardır. HTTP durum kodları 5 sınıfa ayrılır;
• 1xx: Tarayıcı tarafından gönderilen isteğin sunucuya ulaştığını ve işlemin
başladığını bildiren bilgilendirme kodlarını ifade eden durum kodlarıdır.
• 2xx: Tarayıcı tarafından gönderilen isteğin sunucuya ulaştığını, anlaşıldığını ve
başarılı olduğunu ifade eden durum kodlarıdır.
• 3xx: Erişilmek istenen kaynağın başka bir kaynağa taşındığını ve bir
yönlendirmenin söz konusu olduğunu ifade eden durum kodlarıdır.
• 4xx: İsteğin yerine getirilemediğini, ilgili web sayfasına ya da web sitesine
ulaşılamadığını ifade eden durum kodlarıdır.
• 5xx: Tarayıcı tarafından gönderilen isteğin başarıyla sunucuya ulaştığını fakat
sunucu tarafındaki sorunlar nedeniyle isteğin yerine getirilemediğini ifade eden
durum kodlarıdır.
HTTP Durum
Kodları
• [Link]
urum-kodlar%C4%B1-http-gevezedir-3aa8
4a7b31c6
En Sık Karşılaşılan Durum Kodları
• 200 Durum Kodu (Başarılı)
• Bir web sayfası sorunsuz şekilde açılıyorsa sunucudan tarayıcıya 200 durum kodu gönderilir.
• 301 Durum Kodu (Kalıcı Yönlendirme)
• Bir web sayfasının kalıcı olarak bir başka web sayfasına yönlendirildiği ve sayfayı ziyaret eden
kullanıcının da otomatik olarak yönlenmesini sağlayan durum kodudur. 301 durum kodu kullanılarak
yönlendirilen sayfalar içerik bakımından çok benzer ya da alakalı olduğunda güç kaybı en aza
indirilebilir. Bu nedenle web sitesi taşıma gibi işlemlerde kullanılması önerilen en önemli durum
kodlarından biridir.
• 302 Durum Kodu (Geçici Yönlendirme)
• Bir web sayfasının geçici olarak bir başka web sayfasına yönlendirildiğini ifade eden durum kodudur.
301 yönlendirme kodundan farkı ilgili sayfanın test aşamasında olması, bakıma alınması ya da bir e-
ticaret sitesi için ilgili ürünün stoklarının geçici olarak tükenmesi gibi ilgili sayfanın tekrar aktif edileceği
durumlarda kullanılmasıdır. Fakat kullanıcılar 301 yönlendirmesi ile 302 yönlendirmesi arasındaki farkı
anlamayacaktır. İlgili sayfaya giriş yapan kullanıcılar direkt olarak diğer sayfaya yönlendirilecektir.
Örnek
• Örneğin [Link]’ de Hürriyet web sitesinin bir haberini tıklarsak 302 durum kodu ile geçici yönlendirme yapıldı .
• Son Dakika: Fenerbahçe'nin yeni kalecisi Dominik Livakovic İstanbul'da ([Link])
En Sık Karşılaşılan Durum Kodları
• 403 Durum Kodu (Erişim İzni Sorunu)
• Kullanıcının bir web sayfasına erişmek adına sunucuya gönderdiği isteğe karşılık ilgili web sayfasına erişim izni olmadığı
ya da ilgili web sayfasının yasaklandığını ifade eden durum kodudur.
• 404 Durum Kodu (Bulunamadı)
• Kullanıcının görüntülemek istediği web sayfasının ilgili sunucuda bulunmadığını ifade eden durum kodudur. İlgili web
sayfası silinmiş ya da URL’si değiştirilmiş olabilir. Fakat 404 durum kodları ilgili sayfanın geçici ya da kalıcı olarak
ulaşılamadığı hakkında bir fikir vermez.
• 500 Durum Kodu (Sunucu Hatası)
• Sunucu kaynaklı problemlerde karşılaşılan durum kodudur. Sunucuda bir şeylerin ters gittiğini ifade etmektedir. 500
durum kodu içeren web siteleri için ilgili sunucu probleminin en kısa sürede çözülmesi gerekir. Çünkü arama motorları
kullanıcıların ya da arama motoru botlarının erişemediği web sitelerini kullanıcılarına sunmak istemeyecektir.
• 503 Durum Kodu (Sunucu Kullanılamıyor)
• Sunucu tarafında geçici bir sorun olduğunu ifade eden durum kodudur. Genelde sunucuların bakımda olduğu ya da
aşırı yüklenme sonucu geçici olarak devre dışı kaldığı durumlarda karşılaşılır. Örneğin üniversite sınavı sonuçları
açıklandığında ÖSYM sitesinin ya da büyük bir indirimde ilgili web sitesine geçici süreyle ulaşılamaması bu duruma
örnek olarak gösterilebilir. Ayrıca kötü niyetli kişiler tarafından bant genişliğine yönelik yapılan saldırılarda da sunucu
geçici olarak devre dışı kalacak ve kullanıcılar ilgili web sitesine giriş yapmak istediklerinde 503 durum kodu ile
karşılaşacaktır.

You might also like