Nasıl "URI çok uzun İsteği" HTTP 414 çözerim

3 Cevap php

Ben bir PHP web uygulaması geliştirdik. Ben tek seferde birden fazla sorunları güncelleştirmek için kullanıcıya bir seçenek veriyorum. Bunu yaparken, bazen kullanıcı bu hatayla karşılaşmış. Apache içinde URL boyunu artırmak için herhangi bir yolu var mı?

3 Cevap

Apache altında, sınır yapılandırılabilir bir değer, LimitRequestLine . Eğer daha uzun bir istek URI desteklemek istiyorsanız 8190 onun varsayılan daha büyük bir şey için bu değeri değiştirebilirsiniz.

Ancak, aslında bu sınırın içine çalışan iseniz, muhtemelen GET ile başlayan kötüye unutmayın. Sen POST veri bu tür iletmek için kullanmak gerekir - hatta değerlerini güncellemek için kullanıyoruz kabullenmek özellikle beri. Eğer yukarıdaki bağlantıyı kontrol ederseniz, Apache bile söylüyor fark edeceksiniz "Normal şartlar altında, değer varsayılan değiştirilmemelidir."

RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 bir alıntı

The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions:

  • Mevcut kaynakların açıklama;
  • 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;
  • Bir ekleme işlemi ile bir veritabanını genişletme.

Ben basit bir çözüm var.

URI bir dize vardır varsayalım stringdata bu çok uzun. Siz sadece sunucu sınırlarını bağlı parçaların bir dizi içine kırabilir. Sonra bir dosyayı yazmak için benim durumumda, ilkini teslim. Sonra önce eklenen veri eklemek için bir sonraki olanları gönderin.