Bu haftanın başlarında, anlambilim ihlali gibi bir şey yapmak zorunda kaldım. Açıklamama izin ver. HTTP GET ve POST semantik ve sınırlamaları
Ben parametrelerin belirli bir sayı ile bir hizmet için bir istek yapmaktı basit AJAX istemci uygulaması, yapıyordu. Tüm uygulama temelde salt okunur olduğu için, HTTP GET kullanarak gitmek için bir yol olduğunu düşündüm. Geçmem gereken bazı parametreler basitti (sıralama düzeni veya sayfa numarası gibi). Bununla birlikte, gerekli parametrelerden biri değişken uzunlukta olabilir ve bu beni endişelendiriyordu. GET isteğinin sorgusundaki tüm parametreleri kodladığımdan beri, bu bana gereksiz bir upper limit of (roughly) 2000 characters for the request URL verdi. Ve ne olursa olsun, 500 karakter uzunluğunda istek URL’lerini görmek istemedim.Dolayısıyla, bir POST isteğinin böyle bir sınırlaması olmadığı için, değiştirmeye karar verdim. Ama bu doğru hissetmiyor. Bir POST'un verilerin modifikasyonunu ifade ettiği izlenimi altındayım - ancak bunu sadece salt okunur bir istek için kullanıyorum.
Bunu yapmanın daha iyi bir yolu var mı? Bir çok parametre ile bir GET yapmak için? Tek bir yöntemi duydum - parametrelerinin başlangıç POST'unu kendiniz yapıyorsunuz ve ardından bir GET gerçekleştirin. Ancak, bu teknik arzulanan çok şey bırakır.
Ama bu özel durumda geçmiş bakarak, HTTP istek yöntemlerinden gerçek semantik ve sınırlarının neler ? Ve GET neden herhangi bir parametre yükünü desteklemiyor? URL'de querystring kullanmak neredeyse bir kesmek gibi geliyor. Bu konudaki
Bu gönderinin neden veri modifikasyonu olduğunu düşündüğünü düşünüyorsunuz? –
@ConradFrix: Formların gönderilmesinde, dosya yüklemesinde ve [genel kimliksiz eylemler.] Kullanıldığından (http://en.wikipedia.org/wiki/POST_ (HTTP) #Affecting_server_state) – voithos
Bir Ajax uygulaması yazmak, neden URL uzunluğuna önem veriyorsunuz?Ayrıca, 2000 karakter sınırının yalnızca tarayıcı URL'leri için geçerli olduğunu unutmayın, Ajax istekleri değil (sunduğunuz bağlantıya yapılan yorumlarda belirtildiği gibi). –