BIG-REQUESTS
L'extension X11 qui a relevé le plafond d'une requête unique de 256 kilo-octets à 16 mégaoctets, grâce à une astuce sur le champ de longueur que les vieux serveurs n'ont jamais eu à comprendre.
Dans le protocole X de base, chaque requête commence par un en-tête dont la longueur tient dans un champ de 16 bits, compté en mots de quatre octets. Cela autorise au plus 65 535 mots, soit 262 140 octets, ce qui était largement suffisant en 1987. Puis sont venues les images. Un PutImage d'une image plein écran en 24 bits pèse plusieurs mégaoctets, et Xlib devait la découper discrètement en bandes envoyées une à une, que le serveur dessinait l'une après l'autre. BIG-REQUESTS, apparue avec X11R6 en 1994, règle cela avec une seule nouvelle requête, BigReqEnable. Dès lors, le client peut mettre le champ de longueur à zéro et le faire suivre d'un mot de 32 bits contenant la vraie longueur. Le serveur répond avec ce qu'il peut accepter ; sur X.Org, environ 16 mégaoctets.
L'élégance tient à ce qu'un serveur dépourvu de l'extension ne voit jamais ce format, puisque le client doit d'abord le demander, et à ce que l'ancien en-tête garde sa forme. Xlib l'active automatiquement à l'ouverture de la connexion, et XExtendedMaxRequestSize indique la nouvelle limite, à côté de l'ancienne XMaxRequestSize ; XCB fait de même et découpe seule ce qui reste trop gros. Pour de très grandes images sur la même machine, MIT-SHM reste plus rapide, car il ne copie rien du tout. BIG-REQUESTS est sortie dans la même version que XC-MISC, qui donnait aux clients de nouveaux identifiants de ressource ; ce sont deux extensions que personne ne voit mais que tout client X moderne utilise dans sa première milliseconde.