• [^] # Re: Entêtes binaires???

    Posté par . En réponse à la dépêche En route pour HTTP/2.0. Évalué à 9. Dernière modification le 25 mai 2012 à 11:21.

    Parce qu’avec "vi" (non, pas vraiment vi, mais c’est toi qui a commencé), je peux taper en HTTP, FTP, SMTP, IMAP, POP, et j’en passe.

    Avec ta solution, il me faut un vi-http, un vi-ftp, un vi-smtp, un vi-imap, un vi-pop. Avec vi je peux éditer du Latex, du HTML, du Markdown, du JSON, du XML. Toi pour ton MPEG-TS tu es obligé d’écrire un outil spécifique ; moi c’est tous les jours que j’utilise des scripts qui communiquent avec des serveurs web/mail et qui n’utilisent rien d’autre que nc, les outils unix standards et des pipes.

    Franchement, le nom des entêtes c’est négligeable devant :
    - les entêtes répétées pour toutes les ressources d’une page (j’ai fait F5 sur une page sur linuxfr : 16 requêtes HTTP, avec toutes les entêtes identiques à chaque fois renvoyées)
    - les gadgets de HTTP dont on pouvait se passer (content negociation particulièrement : accept, accept-language, accept-encoding)
    - les cookies

    Franchement, sur cette requête :

    GET /images/icones/lock-secure.png HTTP/1.1
    Host: linuxfr.org
    User-Agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0
    Accept: image/png,image/*;q=0.8,*/*;q=0.5
    Accept-Language: en-us,en;q=0.8,fr-fr;q=0.5,fr;q=0.3
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    Referer: https://linuxfr.org/assets/application-992aed4bd1194c5a036eb71f8e23eacf.css
    Cookie: https=1; remember_account_token=Vm0wd2QyVkhVWGhVV0dST1ZsZFNXVll3WkRSV1JteDBaRWhrVmxKc2NEQmFWV2h%3D--11a3e229084349bc25d97e29393ced1d; linuxfr.org_session=Vm0wd2QyUXlVWGxWV0d4WFlUSm9WMVl3Wkc5V2JGbDNXa1pPVlUxV2NIcFhhMXBQVjBaYWMySkVUbGhoTVVwVVZtcEdTMlJIVmtWUmJVWlRWakpvZVZadE1UUlRNazE1Vkd0V1VtSlZXbGhXYWtwdlpWWmFkR1ZHV214U2JHdzFWa2QwYzJGc1NuUmhSemxWVmpOT00xcFZXbUZrUjA1R1drWndWMDFWY0VwV2JURXdZVEpHVjFOWVpGaGlSMmhZV1ZkMFlWUkdWWGhYYlVaclVsUkdXbGt3WkRSVk1rcFhVMnR3VjJKVVJYZFpWRXBIVmpGT1dWcEdhR2xT
    If-Modified-Since: 2011年7月13日 12:40:33 GMT
    Cache-Control: max-age=0
    
    

    (vous inquiétez pas, c’est pas mon vrai cookie)

    Qu’est-ce qui te semble le plus efficace pour gagner de l’espace :
    - trouver un encodage binaire pour les entêtes
    - rationaliser le système de cache pour éviter d’avoir plusieurs entêtes pour le contrôle du cache
    - trouver un mécanisme pour que client et serveur se mettent d’accord pour se passer des entêtes qui servent à rien dans 90% des requêtes : Accept-* (presque toutes les pages ont une seule représentation linguistique/informatique), Connection (quand t’es en HTTP 1.1 à priori tu es sûr que tu feras du keep-alive)
    - changer le scope de certaines entêtes (User-Agent, Cookie, Referer) pour qu’elles soient valides le temps de la connexion plutôt que le temps de la requête