Ce este negocierea conținutului?

Negocierea conținutului este o tehnică descrisă în specificația HTTP (Hyptertext Transfer Protocol) care permite unui client la distanță să facă o solicitare mai specifică a unui server web. Metoda oferă serverului capacitatea de a găzdui mai multe tipuri de fișiere, documente în diferite limbi și multe altele, fiecare cu niveluri de calitate diferite. Aceste selecții separate sunt găzduite ca o singură referință, notate prin identificatorul uniform de resurse (URI) și sunt menite să ofere conținut mai aplicabil atunci când este disponibil pe server.

În cazul în care un localizator uniform de resurse (URL) este o referință la un fișier într-o locație specifică, cum ar fi într-un folder de pe server, un URI poate face referire la orice, practic oriunde. Specificul URI-ului, cum ar fi locația fișierului care urmează să fie livrat, numele fișierului și tipul acestuia, sunt stabilite după ce conținutul este negociat. Acest lucru permite ca diferitele bucăți de conținut să se așeze în locații diferite, cum ar fi toate fișierele pentru o anumită limbă organizate în folderul acelei limbi de pe server.

Ideea din spatele negocierii conținutului este ca serverul web să ofere cel mai bun conținut posibil pentru orice agent de utilizator sau browser web dat. Poate furniza anumite tipuri de fișiere de imagine sau alt conținut clienților care sunt capabili să le susțină. Acest lucru este util atunci când găzduiți mai multe versiuni ale unui fișier pentru a accepta mai multe platforme de navigare, cum ar fi dispozitivele mobile.

Pentru a face toate acestea, HTTP descrie două metode de negociere a conținutului, precum și sugerează capacitatea de a combina cele două. O metodă este negocierea bazată pe server. Cu această metodă, serverul ia cea mai bună decizie posibilă cu privire la ce să livreze, în funcție de logica dată și de conținutul disponibil. .

Cu toate acestea, există unele dificultăți cu negocierea conținutului bazat pe server. Serverul nu știe cum să răspundă la fiecare cerere posibilă, așa că trebuie să facă presupuneri pe baza logicii pe care i-a fost dată pentru a lua acele decizii. Nu poate ști dacă browserul web rulează pe un dispozitiv mobil sau dacă documentul solicitat este destinat să fie trimis direct la o imprimantă decât dacă i se spune. Există, de asemenea, probleme de confidențialitate, deoarece metoda condusă de server se așteaptă ca cererea să îi trimită informații despre utilizatorul care face cererea.

A doua metodă este cunoscută sub denumirea de negociere de conținut bazată pe agenți. Aici, utilizatorul face o cerere de la server, iar serverul trimite înapoi o listă de alternative disponibile, dacă există. Selecția se face fie automat, pe baza preferințelor browserului sau platformei disponibile, fie manual sub forma opțiunilor prezentate în HTML. Principalul dezavantaj al opțiunii conduse de agent este cererile multiple către server pentru cel mai bun conținut posibil. Cu toate acestea, atunci când un server proxy memorează în cache cereri către un server care utilizează negocierea bazată pe agent, acesta va putea livra conținutul adecvat oricăror utilizatori din spatele proxy-ului printr-o singură solicitare către cache.