GET

HTTP yöntemi

HTTP yöntemi GET'ün belirtimi

GET yöntemi, hedef kaynak için seçilen geçerli bir gösterimin aktarılmasını ister. GET, bilgi almanın birincil mekanizmasıdır ve neredeyse tüm performans optimizasyonlarının odak noktasıdır. Bu nedenle, insanlar HTTP aracılığıyla bazı tanımlanabilir bilgileri almaktan bahsettiklerinde, genellikle bir GET isteği yapmaktan söz ederler.

Kaynak tanımlayıcılarını uzak dosya sistemi yol adları ve gösterimleri de bu tür dosyaların içeriğinin bir kopyası olarak düşünmek caziptir. Aslında, birçok kaynak bu şekilde uygulanmaktadır (ilgili güvenlik hususları için Bölüm 9.1'e bakın). Ancak, uygulamada böyle bir sınırlama yoktur. Bir kaynağın HTTP arayüzünün bir içerik nesneleri ağacı, çeşitli veritabanı kayıtları üzerinde programatik bir görünüm veya diğer bilgi sistemlerine bir ağ geçidi olarak uygulanması da olasıdır. URI eşleme mekanizması bir dosya sistemine bağlı olduğunda bile, bir kaynak sunucusu dosyaları doğrudan aktarmak yerine dosyaları istekle birlikte girdi olarak çalıştıracak ve çıktıyı temsil olarak gönderecek şekilde yapılandırılabilir. Ne olursa olsun, yalnızca kaynak sunucunun kaynak tanımlayıcılarının her birinin bir uygulamaya nasıl karşılık geldiğini ve her uygulamanın GET'e yanıt olarak hedef kaynağın geçerli bir temsilini seçip göndermeyi nasıl başardığını bilmesi gerekir.

Bir istemci, istekte bir Aralık başlık alanı göndererek GET'in semantiğini, seçilen temsilin yalnızca bazı bölümlerinin aktarılmasını isteyen bir "aralık isteği" olacak şekilde değiştirebilir (RFC7233).

Bir GET istek iletisi içindeki bir yükün tanımlanmış bir semantiği yoktur; bir GET isteğinde bir yük gövdesi göndermek bazı mevcut uygulamaların isteği reddetmesine neden olabilir.

Bir GET isteğine verilen yanıt önbelleğe alınabilir; bir önbellek, Cache-Control başlık alanı tarafından aksi belirtilmedikçe (RFC7234 Bölüm 5.2) sonraki GET ve HEAD isteklerini karşılamak için bunu kullanabilir.

HTTP yöntemi GET, Internet Engineering Task Force (IETF) ve World Wide Web Consortium (W3C) tarafından belge RFC 7231'ün 4.3.1. bölümünde belirtilmiştir.

GET yönteminin açıklaması

HTTP protokolünün GET yöntemi, bir dijital kütüphaneciye benzetilebilir. Sunucudan, veri üzerinde herhangi bir değişiklik yapmadan veriyi sunmasını nezaketle ister - tamamen pasif bir talep.

GET yöntemini özel kılan nedir?

  1. Tutarlılık: Kütüphaneciye aynı kitabı birkaç kez sormanızı hayal edin - her seferinde aynı kitabı alırsınız. GET isteği için de aynı şey geçerlidir: sürekli olarak aynı sonucu verir.
  2. Oku, yazma: GET isteği bir gözlemcinin karakterine sahiptir. Verilere bakar ama değiştirmez.
  3. URL'deki Bilgi: URL'yi bir adres veya kartela olarak düşünün. Hangi kitap veya bilgiyi aradığınızı belirtir. Ancak, dikkat: bu kartlarda özel notlar olmamalıdır, çünkü başkaları tarafından görülebilirler.
  4. Hızlı ve verimli yanıtlar: Yanıtları önbelleğe alma yeteneği sayesinde, GET yöntemi tekrarlanan isteklere hızlı bir şekilde yanıt verebilir, her kitabın tam olarak nerede olduğunu bilen iyi organize edilmiş bir kütüphaneciye benzer.

Ancak bazı sınırlamalar da vardır:

  1. Notlar için sınırlı alan: URL'de bilgi için sadece belirli bir alan vardır. Bu, küçük bir kartela üzerine yazmak gibidir.
  2. Sırlar yok: URL'ler görünür ve saklanabilir olduğundan, üzerlerine hassas bilgiler yazmamalısınız.
  3. Müdahale yok: Bir gözlemci, gözlemlediği şeyi etkilemez. Bu nedenle GET yöntemi veriyi değiştirmek için kullanılmamalıdır. Bunun için dijital araç kutumuzda başka araçlar var.

Genel olarak, GET yöntemi, bilgiyi etkili ve güvenli bir şekilde almamıza yardımcı olan güvenilir ve temel bir dijital araçtır.

HTTP yöntemi GET için örnek

Request header:
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache