Ayrıntılı, ancak http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html adresindeki HTTP 1.1 yöntem belirtiminden kopyalandı
9.3 ALIN
GET yöntemi, İstek-URI'si tarafından tanımlanan herhangi bir bilgiyi (bir varlık şeklinde) almak anlamına gelir. İstek URI'sı bir veri üretme sürecine atıfta bulunursa, bu metin sürecin çıktısı olmadıkça, sürecin kaynak metni olarak değil yanıtta varlık olarak döndürülecek olan üretilen verilerdir.
İstek iletisi bir If-Modified-Since, If-Mododified-Since, If-Match, If-None-Match veya If-Range üstbilgisi alanını içeriyorsa, GET yönteminin anlam bilgisi "koşullu GET" olarak değişir. Koşullu bir GET yöntemi, kuruluşun yalnızca koşullu başlık alanları tarafından tanımlanan koşullar altında aktarılmasını ister. Koşullu GET yöntemi, önbelleğe alınan varlıkların birden fazla istek gerekmeden veya istemci tarafından zaten tutulan verileri aktarmadan yenilenmesine izin vererek gereksiz ağ kullanımını azaltmayı amaçlamaktadır.
İstek iletisi bir Aralık üstbilgisi alanı içeriyorsa, GET yönteminin anlam bilgisi "kısmi GET" olarak değişir. Kısmi bir GET, bölüm 14.35'te açıklandığı gibi, işletmenin sadece bir kısmının aktarılmasını talep eder. Kısmi GET yönteminin, kısmen alınan varlıkların zaten istemci tarafından tutulan veriler aktarılmadan tamamlanmasına izin vererek gereksiz ağ kullanımını azaltması amaçlanmıştır.
Bir GET isteğine yanıt, yalnızca ve yalnızca bölüm 13'te açıklanan HTTP önbelleğe alma gereksinimlerini karşılıyorsa önbelleğe alınabilir.
Formlar için kullanıldığında güvenlikle ilgili konular için bkz. Bölüm 15.1.3.
9.5 SONRASI
POST yöntemi, kaynak sunucunun, istekte yer alan varlığı İstek Satırında İstek-URI'si tarafından tanımlanan kaynağın yeni bir alt öğesi olarak kabul etmesini istemek için kullanılır. POST, aşağıdaki işlevleri kapsaması için tek tip bir yönteme izin verecek şekilde tasarlanmıştır:
- Annotation of existing resources;
- Posting a message to a bulletin board, newsgroup, mailing list,
or similar group of articles;
- Providing a block of data, such as the result of submitting a
form, to a data-handling process;
- Extending a database through an append operation.
POST yöntemi tarafından gerçekleştirilen gerçek işlev sunucu tarafından belirlenir ve genellikle İstek URI'sına bağlıdır. Gönderilen varlık, bir dosyanın kendisini içeren bir dizine tabi olduğu şekilde bu URI'ye bağlıdır, bir haber makalesi gönderildiği bir haber grubuna veya bir kayıt bir veritabanına bağlıdır.
POST yöntemi tarafından gerçekleştirilen eylem, bir URI tarafından tanımlanabilecek bir kaynakla sonuçlanmayabilir. Bu durumda, yanıtın sonucu tanımlayan bir varlık içerip içermediğine bağlı olarak 200 (Tamam) veya 204 (İçerik Yok) uygun yanıt durumudur.
Kaynak sunucuda bir kaynak oluşturulduysa, yanıt 201 (Oluşturuldu) olmalı ve isteğin durumunu açıklayan ve yeni kaynağa ve bir Konum başlığına başvuran bir varlık içermelidir (bkz. Bölüm 14.30).
Yanıt uygun Önbellek Denetimi veya Süresi Sonu başlık alanlarını içermediği sürece bu yönteme verilen yanıtlar önbelleğe alınamaz. Ancak, 303 (Diğerine Bak) yanıtı, kullanıcı aracısını önbelleğe alınabilir bir kaynağı almaya yönlendirmek için kullanılabilir.
POST istekleri bölüm 8.2'de belirtilen mesaj iletim gereksinimlerine uymalıdır * ZORUNLU *.
Güvenlikle ilgili konular için bkz. Bölüm 15.1.3.
9.6 PUT
PUT yöntemi, ekteki varlığın sağlanan Request-URI altında saklanmasını ister. İstek URI'si zaten var olan bir kaynağa başvuruyorsa, ekteki varlık, kaynak sunucuda bulunanın değiştirilmiş bir sürümü olarak düşünülmelidir. İstek URI'sı varolan bir kaynağı göstermiyorsa ve bu URI, istekte bulunan kullanıcı aracısı tarafından yeni bir kaynak olarak tanımlanabiliyorsa, kaynak sunucu bu URI ile kaynağı oluşturabilir. Yeni bir kaynak oluşturulursa, kaynak sunucu 201 (Oluşturuldu) yanıtı aracılığıyla kullanıcı aracısını bilgilendirmelidir ZORUNLU. Mevcut bir kaynak değiştirilirse, isteğin başarılı bir şekilde tamamlandığını göstermek için 200 (Tamam) veya 204 (İçerik Yok) yanıt kodu gönderilmelidir. Kaynak Request-URI ile oluşturulamadı veya değiştirilemediyse, sorunun doğasını yansıtan uygun bir hata yanıtı verilmelidir. Varlığın alıcısı, anlamadığı veya uygulamadığı herhangi bir Content- * (örn. Content-Range) başlığını göz ardı ETMEMELİDİR ve bu gibi durumlarda 501 (Uygulanmadı) yanıtı döndürmelidir ZORUNLU.
İstek bir önbellekten geçerse ve İstek URI'sı şu anda önbelleğe alınmış bir veya daha fazla varlığı tanımlarsa, bu girdilere eski olarak davranılmalıdır. Bu yönteme verilen yanıtlar önbelleğe alınamaz.
POST ve PUT istekleri arasındaki temel fark, İstek-URI'sinin farklı anlamına yansır. Bir POST isteğindeki URI, ekteki varlığı işleyecek kaynağı tanımlar. Bu kaynak veri kabul eden bir süreç, başka bir protokole açılan bir geçit veya ek açıklamaları kabul eden ayrı bir varlık olabilir. Buna karşılık, bir PUT isteğindeki URI, istekle birlikte gelen varlığı tanımlar - kullanıcı aracısı, URI'nin ne olduğunu bilir ve sunucunun, isteği başka bir kaynağa uygulamaması GEREKİR. Sunucu, isteğin farklı bir URI'ye uygulanmasını istiyorsa,
301 (Kalıcı Olarak Taşındı) yanıtı göndermelidir ZORUNLU; kullanıcı aracısı daha sonra isteği yeniden yönlendirip yönlendirmemeye ilişkin kendi kararını verebilir.
Tek bir kaynak birçok farklı URI tarafından tanımlanabilir. Örneğin, bir makalede "geçerli sürümü" tanımlamak için bir URI olabilir ve bu da her bir sürümü tanımlayan URI'den ayrı olabilir. Bu durumda, genel bir URI üzerindeki bir PUT isteği, kaynak sunucu tarafından diğer birkaç URI'nin tanımlanmasına neden olabilir.
HTTP / 1.1, bir PUT yönteminin bir kaynak sunucunun durumunu nasıl etkilediğini tanımlamaz.
PUT istekleri, bölüm 8.2'de belirtilen mesaj iletim gereksinimlerine uymak ZORUNLUDUR.
Belirli bir varlık başlığı için aksi belirtilmedikçe, PUT isteğindeki varlık başlıkları, PUT tarafından oluşturulan veya değiştirilen kaynağa uygulanmalıdır.
9.7 SİL
DELETE yöntemi, kaynak sunucunun Request-URI tarafından tanımlanan kaynağı silmesini ister. Bu yöntem, kaynak sunucuya insan müdahalesi (veya başka yollarla) geçersiz kılınabilir. Kaynak sunucudan döndürülen durum kodu, eylemin başarıyla tamamlandığını gösterse bile, istemcinin işlemin gerçekleştirildiği garanti edilemez. Ancak, yanıt verildiği sırada kaynağı silmeyi veya erişilemeyen bir konuma taşıma niyetinde olmadığı sürece sunucu başarıyı GÖSTERMEMELİDİR.
Yanıt, durumu tanımlayan bir varlık içeriyorsa başarılı bir yanıt 200 (Tamam), eylem henüz yürürlüğe girmemişse 202 (Kabul edildi) veya eylem yürürlüğe girmiş ancak yanıt içermiyorsa 204 (İçerik Yok) olmalıdır bir varlık.
İstek bir önbellekten geçerse ve İstek URI'sı şu anda önbelleğe alınmış bir veya daha fazla varlığı tanımlarsa, bu girdilere eski olarak davranılmalıdır. Bu yönteme verilen yanıtlar önbelleğe alınamaz.