Çevremde arama yaptım ve anlayabildiğim kadarıyla POST form istekleri zaten 10MB (http://golang.org/src/net/http/request.go#L721) ile sınırlı. Benim ServeHTTP
yönteminde bu azaltılması konusunda gitmek için olsaydıGolang kullanırken formların büyüklüğünü (daha fazla) sınırlaması tavsiye edilir mi?
, bunu düzgün yapmak için nasıl emin değilim. Bunun gibi bir şey deneyebilirim:
r.Body = http.MaxBytesReader(w, r.Body, MaxFileSize)
err := r.ParseForm()
if err != nil {
//redirect to some error page
return
}
Ancak hataya geri dönersek bağlantıyı da kapatır mı? Her şeyi okumayı nasıl engellerdim? Bunu buldum:
https://stackoverflow.com/a/26393261/2202497, ama ne olursa, eğer içerik uzunluğu ayarlanmamışsa ve okunmanın ortasında, dosyanın çok büyük olduğunu anlıyorum.
benim sunucunun kaynaklarını hogging Bir kişinin önlemeye yönelik bir güvenlik önlemi olarak bu kullanıyorum.
Teklif verme şekliniz iyi görünüyor. Her şeyi okumayacaksınız ya da stdlib'in 10MB sınırı da etkisiz olacak. İçerik Uzunluğu olmayan büyük bir POST, çoğu tarayıcı/kullanıcı aracısı tarafından oluşturulmayacak ve istek üzerine askıya alınması, bunun gerçekleşmesi durumunda makul bir yanıttır. – twotwotwo
Bence bu erken bir optimizasyon. Olağandışı bir trafik aldığınızı fark edinceye kadar, mümkün olduğunca basit bir şekilde bırakmanız gerekir.Tamamlamanız gereken başka öncelikli görevleriniz olduğundan eminim. : P – Populus
@Populus Farkettim. Şu an için fazla endişelenmiyorum. Yine de soruya devam edeceğim. – John