Fiecare resursă utilizată pe internet are un tip media, cunoscut și sub numele de tip MIME, care înseamnă Multipurpose Internet Mail Extension. Aceste informații sunt necesare pentru tranzacțiile dintre server și client.
Browserul trebuie să cunoască tipul de resurse trimise către acesta, astfel încât să poată să le gestioneze corect.
Același lucru este valabil și pentru server. Trebuie să cunoască tipul de resurse care i-au fost trimise pentru analiză și procesare precise.
Conţinut
Unde este declarat tipul de conținut?
Tipul media al oricărei resurse este declarat în Content-Type
proprietatea antetului cererii (pe client, atunci când faceți o cerere către server) sau în antetul de răspuns (pe server, când trimiteți un răspuns).
Fără a declara în mod explicit tipul de conținut al unei resurse, clientul poate încerca să detecteze automat tipul, dar rezultatul poate să nu fie corect. Acesta este motivul pentru care este important să o declarați în mod explicit.
Tipuri media
Tipurile de media există sub diferite forme. Acestea sunt clasificate în diferite grupuri:
- cerere
- audio
- font
- exemplu
- imagine
- mesaj
- model
- multipart
- text
- și video
Aceste categorii au și tipurile lor. De exemplu, application/json
este un tip sub application
și text/html
este un tip sub text
.
Puteți găsi o listă completă a tipurilor de media în IANA (un corp care coordonează unele dintre elementele cheie de pe internet) tipuri de media.
Toate aceste tipuri acoperă diferite tipuri de date, cum ar fi text, audio, imagini, HTML și multe altele care sunt utilizate pe internet.
Browserul trebuie să cunoască tipul media al unei resurse
După cum am menționat mai sus, browserul trebuie să știe ce tip de conținut primește. Iată un exemplu pentru a ilustra acest lucru.
Următorul cod este un server Node care servește un fișier HTML:
const http = require("http");
const fs = require("fs");
const path = require("path");
const server = http.createServer(function (req, res) {
const filePath = path.join(__dirname, "index.html");
var stat = fs.statSync(filePath);
res.writeHead(200, {
"Content-Type": "text/css",
"Content-Length": stat.size,
});
const readStream = fs.createReadStream(filePath);
readStream.pipe(res);
});
server.listen(5000);
console.log("Node.js web server at port 5000 is running..");
Nu vă faceți griji cu privire la specificul codului. Tot ce te preocupă este index.htm
fișierul pe care îl servim și că Content-Type
este text/css
.
Iată conținutul index.html
:
<h1>Homepage</h1>
Desigur, un document HTML este diferit de un fișier CSS. Iată rezultatul localhost:5000
la pornirea serverului:
De asemenea, puteți confirma răspunsul obținut verificând anteturile din fila de rețea a DevTools.
Iată rezultatul unui browser Chrome:
Browserul a primit conținutul ca un tip CSS, prin urmare, a încercat să îl trateze ca CSS.
De asemenea, rețineți că cunoașterea deplină a tipului de conținut obținut de browser reduce, de asemenea, vulnerabilitățile de securitate, deoarece browserul cunoaște standardele de securitate pentru a pune în aplicare datele respective.
Acum că înțelegeți conceptul tipurilor MIME și importanța lor, să mergem la JSON.
Tipul de conținut corect pentru JSON
JSON trebuie interpretat corect de browser pentru a fi utilizat în mod corespunzător. text/plain
a fost de obicei folosit pentru JSON, dar conform IANA, tipul oficial MIME pentru JSON este application/json
.
Aceasta înseamnă că atunci când trimiteți JSON la server sau primiți JSON de la server, trebuie să declarați întotdeauna Content-Type
a antetului ca application/json
deoarece acesta este standardul pe care clientul și serverul îl înțeleg.
Concluzie
După cum sa menționat mai sus, serverul (la fel ca browserul) trebuie să cunoască tipul de date trimise acestuia, să zicem, într-o cerere POST. Acesta este motivul forms
cu fișiere conțin de obicei enctype
atribut cu o valoare de multipart/form-data
.
Fără codificarea cererii în acest fel, solicitarea POST nu va funcționa. De asemenea, odată ce serverul cunoaște tipul de date pe care le-a obținut, atunci știe cum să analizeze datele codificate.
În acest articol, am analizat ce sunt tipurile MIME și scopul lor. De asemenea, ne-am uitat la tipul de conținut oficial pentru JSON. Sper că acum știți de ce este important să declarați tipurile de resurse atunci când sunt utilizate pe internet.
#Care #este #tipul #conținut #corect #pentru #JSON #Cerere #tip #antet #MIME #explicat
Care este tipul de conținut corect pentru JSON? Cerere tip antet MIME explicat