· kaynak Vercel blog
Vercel'in skipMiddlewareRequestBody seçeneği, Routing Middleware'de istek gövdelerini atlıyor
Vercel artık projelerin client istek gövdelerinin Routing Middleware'e iletilmesini durdurmasına izin veriyor; bu da gelen Fast Origin Transfer kullanımını azaltıyor ve büyük isteklerde ilk bayta kadar geçen süreyi iyileştiriyor.

Vercel ne yayınladı
Vercel, client istek gövdelerinin Routing Middleware'e iletilmesini durduran skipMiddlewareRequestBody adlı yeni bir proje ayarı kullanıma sundu. Vercel changelog kaydına göre bu ayarın iki pratik etkisi var: middleware çağrılarına bağlı gelen Fast Origin Transfer kullanımını düşürüyor ve ilk bayta kadar geçen süreyi kısaltabiliyor; en belirgin kazanç, büyük gövdeler taşıyan isteklerde görülüyor.
Buradaki motivasyon oldukça mekanik. Vercel'de middleware genellikle uygulama kodundan önce çalışır ve yönlendirme kararları, rewrite ve redirect gibi işleri üstlenir. Bu mantığın çoğu yalnızca header'ları, path'leri, cookie'leri veya istek metadata'sını inceler — payload'ın kendisi alakasızdır. Buna rağmen gövde, istek boyutuyla orantılı transfer hacmi tüketerek ve gecikme ekleyerek middleware adımına gönderiliyordu.
Nasıl açılır
Seçenek, projenin yapılandırma dosyasında yer alıyor. vercel. içinde şu şekilde ayarlanıyor:
{ "skipMiddlewareRequestBody": true }
TypeScript yapılandırması kullanan projeler aynı ayarı vercel.ts içinde de tanımlayabilir; Vercel'in örneği @vercel/config kurulu olduğunu varsayıyor:
ts import type { VercelConfig } from '@vercel/config/v1';
export const config: VercelConfig = { skipMiddlewareRequestBody: true, };
Vercel, değişikliğin etkili olması için yeniden deploy gerektiğini belirtiyor. Flag varsayılan olarak false olduğu için mevcut projeler, biri açıkça etkinleştirene kadar mevcut davranışlarını koruyor.
Tek kısıtlama
Akılda tutulması gereken tek bir uyarı var. Vercel'e göre bu ayar yalnızca Routing Middleware istek gövdelerini okumadığında güvenlidir. Payload'ı işleyen — doğrulama, dönüştürme veya başka bir amaçla — middleware'lerde flag kapalı bırakılmalı, çünkü gövde o aşamada mevcut olmayacak.
Ancak gövde çöpe atılmıyor. Vercel, Vercel Functions ve rewrite hedeflerinin gövdeyi eksiksiz almaya devam ettiğini belirtiyor; böylece pipeline'ın ilerleyen bölümlerindeki uygulama kodu istek gövdelerini tam olarak önceki gibi okumaya ve işlemeye devam edebilir. Bu değişiklikten yalnızca middleware duraklaması etkileniyor.
Neden önemli
Büyük gövdeli istekler — yüklemeler, JSON yoğun API çağrıları, ekli dosya içeren form gönderimleri — gizli bir vergi ödüyordu: payload'ları sık sık onları yok sayan middleware'e yolculuk yapıyordu. Bu maliyet, müşterilerin doğrudan hissettiği iki yerde ortaya çıkıyor: Fast Origin Transfer tüketimi ve ilk bayta kadar geçen süre. Yeni flag, doğru uygulandığında ikisini de ortadan kaldırıyor.
Bu yayının ayrıca dikkat çekici şekilde temkinli olduğunu belirtmek gerek. Seçenek opt-in olduğu ve varsayılanı false olduğu için, özellik yayımlandığı anda hiçbir mevcut deployment davranış değiştirmiyor. Ekipler middleware'lerinin gövde okuyup okumadığını kontrol edebilir, flag'i açabilir, yeniden deploy edebilir ve geniş çapta uygulamadan önce farkı ölçebilir.
Yalnızca yönlendirmeyle ilgili metadata'yı inceleyen Vercel middleware'i çalıştıran herkes için bu neredeyse bedava bir kazanç: daha az veri hareketi, daha düşük ölçülen kullanım ve eklenen gecikmenin en zor saklandığı istek türlerinde daha hızlı yanıtlar.
- #vercel
- #middleware
- #performance
- #serverless
- #configuration