HTTP Dersleri – Sözlük

HTTP Dersleri – Ders 1 – Temel kavramlara genel bakış
HTTP Dersleri – Ders 2 – Mimari Yönleri
HTTP Dersleri – Ders 3 – İstemci Kimliği
HTTP Dersleri – Ders 4 – İstemci Doğrulama Mekanizmaları
HTTP Dersleri – Ders 5 – Güvenlik
HTTP Dersleri – Sözlük

Bu sözlük, HTTP dersleri serisi için gerekli terimleri içerir. HTTP durum kodlarının ne anlama geldiğini çabucak bulmanız gerekiyorsa, bu sözlük yararlı olabilir.

HTTP sözlüğünde aşağıdakilerini bulabilirsiniz;

  • İstek Yöntemleri
  • Durum Kodları
  • Başlıklar
  • MIME Türleri

İstek Yöntemleri

Yöntem Açıklama İstek Gövdesi Var mı?
CONNECT HTTP CONNECT yöntemi, istenen kaynakla çift yönlü iletişim başlatır. Bir tünel açmak için kullanılabilir. Hayır
DELETE DELETE yöntemi, kaynak sunucunun Request-URI tarafından tanımlanan kaynağı silmesini talep eder. Hayır
GET HTTP GET yöntemi, belirtilen kaynağın gösterimini ister. GET’i kullanarak yapılan istekler yalnızca veri alır. Hayır
HEAD HTTP HEAD yöntemi, belirtilen kaynak bir HTTP GET yöntemiyle istenirse, döndürülen üstbilgileri ister. Örneğin, bant genişliğini korumak için büyük bir kaynak indirmeye karar vermeden önce böyle bir istek yapılabilir. Hayır
OPTIONS HTTP OPTIONS yöntemi, hedef kaynak için iletişim seçeneklerini tanımlamak için kullanılır. İstemci, OPTIONS yöntemi için belirli bir URL’yi veya tüm sunucuya atıf yapmak için bir yıldız (*) belirtebilir. Hayır
POST HTTP POST yöntemi sunucuya veri gönderir. İstek gövdesinin türü İçerik Türü başlığı ile gösterilir. Evet
PUT HTTP PUT istek yöntemi, yeni bir kaynak oluşturur veya istek yüküyle hedef kaynağın gösterimini değiştirir. Evet
TRACE TRACE yöntemi, istek iletisinin uzaktaki bir uygulama katmanı döngüsünü çağırmak için kullanılır. Hayır

Durum Kodları

Bu iki tablo durum kod aralıklarını ve tüm durum kodlarını tanımlar.

Durum Kodu Aralıkları;

Aralık Tanımlanmış Aralık Kategori
100-199 100-101 Bilgilendirme
200–299 200–206 Başarılı
300–399 300–305 Yönlendirme
400–499 400–415 İstemci hatası
500–599 500–505 Sunucu Hatası

Durum Kodları

Status code Reason phrase Meaning
100 Continue Bu geçici yanıt, şu ana kadar olan her şeyin iyi olduğunu ve istemcinin isteği yerine getirmesi gerektiğini veya tamamlanmış halde yok sayacağını gösterir.
101 Switching Protocols Bu kod, istemci tarafından bir yükseltme isteği üstbilgisine yanıt olarak gönderilir ve sunucunun da değiştiği protokolü gösterir.der.
200 OK İstek başarılı.
201 Created Talep başarılı olmuş ve sonucunda yeni bir kaynak yaratılmıştır. Bu genellikle bir PUT isteğinden sonra gönderilen yanıttır.
202 Accepted Talep alındı ancak henüz işleme konmadı. İstekte bulunulmaması, HTTP’de daha sonra isteğin işlenişinin sonucunu gösteren asenkron bir yanıt göndermesinin imkânsız olduğu anlamına gelir. Başka bir işlemin veya sunucunun isteği işlediği durumlar veya toplu işlemler için tasarlanmıştır.
203 Non-Authoritative Information Bu yanıt kodu, gönderilen meta bilgi kümesinin orijin sunucusundan geldiği şekliyle tam olarak ayarlanmadığı, ancak yerel veya üçüncü bir tarafın kopyasından toplandığı anlamına gelir. Bu durum dışında, bu yanıt yerine 200 OK yanıtı tercih edilmelidir.
204 No Content Bu istek için gönderilecek herhangi bir içerik yok, ancak başlıklar yararlı olabilir. Kullanıcı aracı, önbellekte saklanan üstbilgilerini bu kaynak için yenileri ile yeniler.
205 Reset Content Bu yanıt kodu, bu talebi gönderen kullanıcı aracısı sıfırlama belge görüntüsünü bildirmek için istekte bulunulduktan sonra gönderilir.
206 Partial Content Bu yanıt kodu, istemci tarafından indirmeyi birden fazla akışa gönderen menzil başlığı nedeniyle kullanılır.
300 Multiple Choices İsteğin birden fazla olası yanıtı var. Kullanıcı aracısı veya kullanıcı bunlardan birini seçmelidir. Yanıtlardan birini seçmenin standart bir yolu yok.
301 Moved Permanently Bu yanıt kodu, istenen kaynağın URI’sinin değiştirildiği anlamına gelir. Muhtemelen, yanıtta yeni URI verilecektir.
302 Found Bu yanıt kodu, istenen kaynağın URI’sinin geçici olarak değiştirildiği anlamına gelir.
303 See Other İstemciye, kaynağın farklı bir URL kullanılarak getirileceğini söyler. Bu yeni URL, yanıt mesajının Konum başlığında yer almaktadır.
304 Not Modified İstemciler, isteklerini, içerdikleri istek başlıklarına göre koşullu yapabilir. Bu kod, kaynağın değişmediğini gösterir.
305 Use Proxy Kaynağa bir proxy vasıtasıyla erişilmelidir; vekilin konumu Konum başlığında verilmiştir.
306 (Unused) Bu durum kodu şu anda kullanılmıyor. HTTP 1.1 spesifikasyonunun önceki bir sürümünde kullanılmıştır.
307 Temporary Redirect 301 durum kodu gibi; Ancak, müşteri, kaynağı geçici olarak bulmak için Konum başlığında verilen URL’yi kullanmalıdır.
400 Bad Request İstemciye hatalı biçimlendirilmiş bir istek gönderdiğini bildirir.
401 Unauthorized İstemciye kaynağa erişmeden önce kendini doğrulamasını isteyen uygun üstbilgilerle birlikte geri gönderilir.
402 Payment Required Şu anda bu durum kodu kullanılmıyor, ancak ileride kullanılmak üzere bir kenara ayırıldı. Bu durum kodu dijital ödeme yöntemleri düşünülerek oluşturuldu ama hiç kullanılmadı.
403 Forbidden İstek sunucu tarafından reddedildi. Yetkisiz istekler için kullanılır genelde.
404 Not Found Sunucu istenen URL’yi bulamıyor.
405 Method Not Allowed İstenen URL için desteklenmeyen bir yöntemle bir istek yapıldı. İstenilen kaynakta hangi yöntemlerin izin verildiğini istemciye söylemek için Allow üstbilgisi yanıtta bulunmalıdır.
406 Not Acceptable İstemciler hangi tür gövde içeriklerini kabul etmeye istekli oldukları konusunda parametreleri belirleyebilir. Bu kod, sunucuda istemci için kabul edilebilir URL ile eşleşen hiçbir kaynak yoksa kullanılır.
407 Proxy Authentication Required 401 durum kodu gibi, ancak bir kaynak için kimlik doğrulaması gerektiren proxy sunucuları için kullanılır.
408 Request Timeout Bir istemcinin isteğini tamamlamak çok uzun sürerse, sunucu bu durum kodunu geri gönderebilir ve bağlantıyı kapatabilir.
409 Conflict İstek, kaynakta bazı çakışmalara neden oluyor.
410 Gone Bu yanıt, istenen içerik sunucudan kalıcı olarak silindiğinde gönderilen adres olmaksızın oluşturulur.
411 Length Required Sunucular, istek iletisinde bir Content-Length üstbilgi gerektirdiğinde bu kodu kullanır. Sunucu, İçerik Uzunluğu başlığı olmadan kaynak isteklerini kabul etmeyecektir.
412 Precondition Failed Bir istemci koşullu bir istekte bulunur ve koşullardan biri başarısız olursa, bu yanıt kodu döndürülür.
413 Request Entity Too Large İstemci, sunucu tarafından tanımlanan sınırlardan daha büyük; Sunucu bağlantıyı kapatabilir veya bir Rety-After başlık alanını döndürebilir.
414 Request URI Too Long İstemci tarafından talep edilen URI, sunucunun yorumlayabileceğinden daha uzun.
415 Unsupported Media Type İstemci, sunucunun anlamadığı veya desteklemediği bir içerik türünün bir varlığını gönderdi.
416 Requested Range Not Satisfiable İstek iletisi belirli bir aralıktaki bir kaynağı istedi ve bu aralık geçersiz veya karşılanamadı.
417 Expectation Failed Bu yanıt kodu, Bekleme isteği üstbilgisi alanı tarafından belirtilen beklentinin sunucu tarafından karşılanamadığı anlamına gelir.
500 Internal Server Error Sunucu, isteğin yerine getirilmesini engelleyen bir hata ile karşılaştı.
501 Not Implemented İstemci, sunucunun yeteneklerinin ötesinde bir istekte bulundu.
502 Bad Gateway Proxy veya ağ geçidi gibi çalışan bir sunucu, istek yanıt zincirindeki bir sonraki bağlantıdan sahte bir yanıtla karşılaştı.
503 Service Unavailable Sunucu şu anda isteği hizmet edemez, ancak ileride mümkün olacaktır.
504 Gateway Timeout Yanıt 408 durum koduna benzer, başka bir sunucudan gelen isteği yanıtlamayı bekleyen zaman aşımına uğramış bir ağ geçidi veya proxy’den gelen yanıt.
505 HTTP Version Not Supported Sunucu protokolün destekleyemediği veya desteklemeyeceği bir sürümünde bir istek aldı.

Referans: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Başlıklar (Headers)

Hem HTTP isteği hem de HTTP yanıtı, başlık alanları içerebilir. Bu iki tablo alanları açıklamakta ve basit örnekler vermektedir.

İstek Başlıkları

Başlık Açıklama Örnek
Accept Yanıt için kabul edilebilir olan bazı ortam türlerini belirtmek için kullanılabilir Accept: text/plain
Accept-Charset Yanıt için hangi karakter setlerinin kabul edilebilir olduğunu gösterir. Accept-Charset: utf-8
Accept-Encoding Accept’e benzer şekilde, ancak yanıtta kabul edilebilir içerik kodlamalarını da kısıtlıyor. Accept-Encoding: gzip, deflate
Accept-Language Accept’e benzer şekilde, ancak yanıt olarak tercih edilen doğal dil kümesini kısıtlar. Accept-Language: en-US
Authorization HTTP kimlik doğrulaması için kimlik doğrulama kimlik bilgileri. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control İstek-yanıt zinciri boyunca tüm önbellekleme mekanizmalarının uyması gereken yönergeleri belirtmek için kullanılır. Cache-Control: no-cache
Connection Gönderenin belirli bağlantı için istenen seçenekleri belirtmesine ve daha fazla bağlantı üzerinden proxy vasıtasıyla iletilmesine izin verilmemesine izin verir. Connection: keep-alive
Content-Encoding Content-Encoding bir dokümanın temel medya türünün kimliğini kaybetmeden sıkıştırılmasına izin vermek için kullanılır. Content-Encoding: gzip
Cookie Daha önce Set-Cookie ile sunucu tarafından gönderilen bir HTTP tanımlama bilgisi. Cookie: $Version=1;
Content-Length İstek gövdesinin sekizli uzunluğu (8-bit bayt). Content-Length: 1024
Content-MD5 İstek gövdesinin içeriğinin Base64 ile kodlanmış bir ikili MD5 toplamı. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Type İsteğin gövdesinin MIME türü (POST ve PUT istekleriyle kullanılır). Content-Type: application/ x-www-form-urlencoded
Date Mesajın gönderildiği tarih ve saat. Date: Tue, 19 Jun 2012 10:10:10 GMT
Expect Belirli sunucu davranışlarının istemci tarafından gerekli olduğunu gösterir. Expect: 100-continue
From İsteği yapan kullanıcının e-posta adresi. From: codemazeblog@gmail.com
Host Sunucunun etki alanı adı (sanal barındırma için) ve sunucunun dinlediği TCP bağlantı noktası numarası. Bağlantı noktası talep edilen hizmet için standart bağlantı noktası ise, bağlantı noktası numarası atlanabilir. HTTP / 1.1’den beri zorunludur. Host: code-maze.com
If-Match If-Match HTTP isteği üstbilgisi, isteği koşullu yapar. GET ve HEAD yöntemleri için, sunucu, yalnızca listelenen ETags’lerden biriyle eşleştiğinde istenen kaynağı geri gönderir. PUT ve diğer güvenli olmayan yöntemler için, bu durumda kaynağı yalnızca yükleyecektir. If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified- Since If-Modified-Since isteği HTTP başlığı, isteği koşullu hale getirir: sunucu, belirtilen tarihten sonra son değiştirildiğinde, 200 durumu olan istenen kaynağı geri gönderir. Talep o zamandan bu yana değiştirilmemişse, yanıt herhangi bir gövde olmaksızın 304 olacak; Last-Modified başlığı son değişiklik tarihini içerir. If-Modified-Since’ın aksine, If-Modified-Since, yalnızca GET veya HEAD ile kullanılabilir. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match If-None-Match HTTP isteği üstbilgisi, isteği koşullu yapar. GET ve HEAD yöntemleri için, sunucu yalnızca istenen kaynağı 200 statüsünde geri gönderir, ancak yalnızca belirtilen ETAG ile eşleşen bir ETag yoksa. Diğer yöntemler için, talep, yalnızca var olan kaynağın ETag’si listelenen herhangi bir değerle eşleşmiyorsa işleme koyulur. If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range If-Aralığı HTTP isteği üstbilgisi istenilen aralıkta ise yapar: koşul karşılandığı takdirde istenilen aralık verilecek ve sunucu, uygun gövdeyle birlikte 206 Partial Content yanıtını geri gönderir. Durum tamamlanmazsa, tüm kaynak 200 OK durumu ile geri gönderilir. If-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified- Since If-Unmodified-Since isteği HTTP üstbilgisi, isteği koşullu hale getirir: Sunucu, yalnızca verilen tarihten sonra değiştirilmemişse istenen kaynağı geri gönderir. İstek, belirtilen tarihten sonra değiştirildiyse, yanıt 412 (Precondition Failed) hatası olacaktır. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Forwards İletinin proxy’ler veya ağ geçitleri ne kadar süreyle iletilebileceği sınırlar. Max-Forwards: 10
Origin İsteğin kaynağının neresi olduğunu belirtir. Herhang ibir yolu değil, sadece sunucu ismini belirtir. Origin: http://www.code-maze.com
Pragma İstek-yanıt zincirinin herhangi bir yerine çeşitli etkileri olabilen, uygulamaya özgü üstbilgiler. Pragma: no-cache
Proxy- Authorization Bir proxy’ye bağlanmak için yetkilendirme kimlik bilgileri. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range Kaynağın yalnızca bir bölümünü istediğini belirtir. Baytlar 0’dan başlayarak numaralandırılır. Range: bytes=500-999
Referer Şu anda bulunan istekten bir önceki isteğin yolunu belirtir. Referer: http://www.code-maze.com
TE TE istek başlığı, kullanıcı aracısının kabul etmeye istekli olduğu kodlamaları belirtir. (Bi başlık için daha mantıklı bir isimlendirme olabilecek Accept-Transfer-Encoding ile karıştırılabilir). TE: trailers, deflate
Upgrade Sunucunun başka bir protokole yükseltmesini isteyin. Upgrade: HTTPS/1.3, IRC/6.9, RTA/x11, websocket
User-Agent İsteği yapan kullanıcı ile ilgili istemci bilgilerini (Hangi tarayıcı gibi) içerir. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Via Sunucuyu, isteğin gönderildiği vekiller hakkında bilgilendirir. Via: 1.0 fred, 1.1 example.com(Apache/1.1)
Warning Gövde ile ilgili olası problemleri içerir. Warning: 199 Miscellaneous warning

Yanıt Başlıkları

Başlık Açıklama Örnek
Access-Control-Allow-Origin Cross-origin kaynak paylaşımına hangi web sitelerinin katılabileceğini belirtir. Access-Control-Allow- Origin: *
Accept-Ranges Sunucunun bir kaynak için hangi aralıkları kabul ettiğini belirtmesine izin verir. Accept-Ranges: bytes
Age Age üstbilgisi, nesnenin bir proxy önbelleğinde olduğu saniye cinsinden süreyi içerir. Age: 24
Allow İstek-URI tarafından tanımlanan kaynak tarafından desteklenen yöntemler kümesini listeler. Bu alanın amacı, alıcının kaynağıyla ilişkili geçerli yöntemleri kesinlikle bilgilendirmektir. Allow: GET, HEAD, PUT
Cache-Control Cache-Control genel üstbilgi alanı hem isteklerde hem de yanıtlarda önbelleğe alma mekanizmaları için yönergeler belirtmek için kullanılır. Cache-Control: max-age=3600
Connection Geçerli işlem tamamlandıktan sonra ağ bağlantısının açık kalıp sürdürülmeyeceğini denetler. Connection: close
Content-Encoding Verilerde kullanılan kodlamanın türü. HTTP sıkıştırma konusuna bakın. Content-Encoding: gzip
Content-Language Sunulan içeriğin dilini belirtir. Content-Language: en
Content-Length Yanıt gövdesinin sekizli uzunluğu (8-bit bayt) Content-Length: 1024
Content-Location Döndürülen veriler için alternatif yer. Content-Location: /index.htm
Content-MD5 Yanıt içeriğinin Base64 ile kodlanmış bir ikili MD5 toplamı. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Disposition Bilinen bir MIME türü için ikili biçimde “Dosya İndirme” diyalog kutusunu yükseltme veya dinamik içerik için bir dosya adı önermek için bir fırsat oluşturur. Tırnak işaretleri özel karakterlerle girilmesi gereklidir. Content-Disposition: attachment; filename=”fname.ext”
Content-Range Content-Range üstbilgisi, kısmi bir mesajın, tüm içerikte nereye ait olduğunu gösterir. Content-Range: bytes 21010-47021/47022
Content-Type İçeriğin MIME türü Content-Type: text/html; charset=utf-8
Date Mesajın gönderildiği tarih. Date: Sun, 17 Jun 2017 10:11:12 GMT
ETag İçeriği belirli bir sürümü için tanımlayıcı başlıktır, genellikle bir ileti özetidir. ETag: “737060cd8c284d8af7ad3082f209582d”
Expires Yanıtın geçerli olduğu tarihi / zamanı verir. Expires: Date: Sun, 17 Jun 2017 10:11:12 GMT
Last-Modified İstenilen içeriği, sunucuda son değiştirilme olduğu tarihi ve saati içerir. Last-Modified: Date: Sun, 17 Jun 2017 10:11:12 GMT
Link İlişki türü RFC 5988 tarafından tanımlanan başka bir kaynakla yazılan ilişkiyi ifade etmek için kullanılır Link: ; rel=”alternate”
Location Yeniden yönlendirmede veya yeni bir kaynak oluşturulduğunda kullanılır. Location: http://www.code-maze.com/index.html
P3P Bu üstbilgi, P3P: CP = “your_compact_policy” şeklinde Gizlilik Tercihleri İçin Platform (Platform for Privacy Preferences Project – P3P) politikası belirler. Bununla birlikte, P3P hiç bir zaman çıkmadı, çoğu tarayıcı bunu hiç bir zaman tam olarak uygulamadı. P3P: CP=”This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info.”
Pragma İstek-yanıt zincirinin herhangi bir yerinde çeşitli etkiler oluşturabilen, uygulamaya özgü üstbilgiler. Pragma: no-cache
Proxy-Authenticate Proxy’ye erişmek için kimlik doğrulama isteği. Proxy-Authenticate: Basic
Refresh Yeniden yönlendirmede veya yeni bir kaynak oluşturulduğunda kullanılır. Bu yönlendirme 5 saniye sonra gerçekleşir. Bu, Netscape tarafından tanıtılan ve çoğu web tarayıcısı tarafından desteklenen, tescilli, standart olmayan bir başlık uzantısıdır. Refresh: 5; url=http://www.code-maze.com/index.html
Retry-After Bir kaynak geçici olarak kullanılamıyorsa, bu, istemciye belirli bir süre sonra tekrar denemesini sağlar (saniye). Retry-After: 240
Server Sunucu ismi Server: Apache/2.4 (Unix)
Set-Cookie HTTP çerezi (Cookie) oluşşturur Set-Cookie: UserID=1; Max-Age=3600; Version=1
Strict-transfer-Security HTTP istemcisine HTTPS ilkesini ne kadar süreyle önbelleğe alacağını ve HSTS İlkesi ve bunun alt alanlar için geçerli olup olmadığını bildirir. Strict-transfer-Security: max-age=16070400; includeSubDomains
Trailer Trailer yanıt başlığı, gönderenin, ileti gövdesi gönderilirken dinamik olarak oluşturulabilecek meta verileri sağlamak için, mesaj bütünlüğü denetimi, dijital imza veya post-processing durumu gibi parçalanmış mesajların sonuna ek alanlar koymasına olanak tanır. Trailer: Max-Forwards
Transfer-Encoding Kaynağı kullanıcıya güvenli bir şekilde aktarmak için kullanılan kodlama biçimi. Şu anda tanımlanmış yöntemler şunlardır: chunked, compress, deflate, gzip, identity. Transfer-Encoding: chunked
Vary Orijinal sunucudan yeni bir istek istemek yerine önbelleğe alınmış bir yanıtın kullanılabilir olup olmayacağına karar vermek için gelecekteki istek üstbilgileriyle nasıl eşleşeceğini belirler. Vary: *
Via İstemciye, cevabın gönderildiği vekiller hakkında bilgi verir. Via: 1.0 mick, 1.1 baselogic.com(Apache/2.4)
Warning Gövdedeki sorunlar hakkında genel bilgidir. A general warning about possible problems with the entity body.
WWW-Authenticate İstenen kaynağa erişmek için kullanılması gereken kimlik doğrulama şemasını belirtir. WWW-Authenticate: Basic

Referans: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

MIME Türleri

İnternet Medya Türleri’nin miktarı nedeniyle, en sık kullanılanlar burada listelenmiştir.

Genel MIME Türleri

Tür Açıklama
application Uygulama tanımlı format (discrete)
audio Ses formatı (discrete)
chemical Kimyasal veri seti (discrete IETF extension)
image Resim formatı (discrete)
message Mesaj biçimi (composite)
model 3 boyutlu model biçimi (discrete IETF extension)
multipart Birden çok nesne koleksiyonu (composite)
text Metin biçimi (discrete)
video Video filmi biçimi (discrete)

Referans: https://www.iana.org/assignments/media-types/media-types.xhtml

Bu sözlükte bahsedilen herşey HTTP 1.1 spesifikasyon belgesinde daha ayrıntılı olarak bulunabilir: http://www.ietf.org/rfc/rfc2616.txt

5 1 vote
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments