POST
HTTP yöntemi
HTTP yöntemi POST'ün belirtimi
POST yöntemi, hedef kaynağın istekte yer alan gösterimi kaynağın kendi özel semantiğine göre işlemesini ister. Örneğin, POST aşağıdaki işlevler için kullanılır (diğerleri arasında):
- Bir HTML formuna girilen alanlar gibi bir veri bloğunu bir veri işleme sürecine sağlamak;
- Bir ilan panosuna, haber grubuna, posta listesine, bloga veya benzer bir makale grubuna mesaj göndermek;
- Kaynak sunucu tarafından henüz tanımlanmamış yeni bir kaynak oluşturmak; ve
- Bir kaynağın mevcut gösterim(ler)ine veri eklemek.
Kaynak sunucu, POST isteğinin işlenmesinin sonucuna bağlı olarak uygun bir durum kodu seçerek yanıt semantiğini belirtir; bu belirtim tarafından tanımlanan durum kodlarının neredeyse tamamı POST'a yanıt olarak alınabilir (istisnalar 206 (Kısmi İçerik), 304 (Değiştirilmedi) ve 416 (Aralık Uygun Değil)).
Bir POST isteğinin başarıyla işlenmesi sonucunda kaynak sunucuda bir veya daha fazla kaynak oluşturulmuşsa, kaynak sunucu OLUŞTURULMALIDIR oluşturulan birincil kaynak için bir tanımlayıcı sağlayan bir Konum başlık alanı içeren bir 201 (Oluşturuldu) yanıtı gönderir (Bölüm 7.1.2) ve yeni kaynak(lar)a atıfta bulunurken isteğin durumunu açıklayan bir gösterim içeren bir 201 (Oluşturuldu) yanıtı gönderir.
POST isteklerine verilen yanıtlar yalnızca açık tazelik bilgisi içerdiklerinde önbelleğe alınabilir (bkz. [RFC7234] Bölüm 4.2.1). Ancak, POST önbelleğe alma yaygın olarak uygulanmamaktadır. Bir kaynak sunucunun istemcinin bir POST sonucunu daha sonraki bir GET tarafından yeniden kullanılabilecek şekilde önbelleğe alabilmesini istediği durumlarda, kaynak sunucu MAY sonucu ve POST'un etkin istek URI'si ile aynı değere sahip bir Content-Location başlık alanını içeren bir 200 (OK) yanıtı gönderir (Bölüm 3.1.4.2).
Bir POST'un işlenmesinin sonucu mevcut bir kaynağın temsiline eşdeğer olacaksa, bir kaynak sunucusu MAY, Konum alanında mevcut kaynağın tanımlayıcısını içeren bir 303 (Diğerine Bakın) yanıtı göndererek kullanıcı aracısını bu kaynağa yönlendirir. Bu, kullanıcı aracısına bir kaynak tanımlayıcısı sağlama ve temsili paylaşılan önbelleğe almaya daha uygun bir yöntemle aktarma avantajlarına sahiptir, ancak kullanıcı aracısı temsili zaten önbelleğe almamışsa ekstra bir istek pahasına.
POST yönteminin açıklaması
HTTP yöntemi POST için örnek
POST /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
Content-Type: application/json
Content-Length: 100
Connection: keep-alive
Request body:
{
"key": "value",
"foo": "bar"
}
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Location: http://api.example.com/data/123
Response body:
{
"status": "success",
"id": 123
}