인터넷에서 사용되는 모든 리소스에는 MIME 유형이라고도 하는 미디어 유형이 있으며 이는 다목적 인터넷 메일 확장을 의미합니다. 이 정보는 서버와 클라이언트 간의 트랜잭션에 필요합니다.
브라우저는 리소스를 제대로 처리할 수 있도록 리소스의 미디어 유형을 알아야 합니다.
서버도 마찬가지입니다. 정확한 구문 분석 및 처리를 위해 전송된 리소스 유형을 알아야 합니다.
Content-Type은 어디에 선언되어 있습니까?
모든 리소스의 미디어 유형은 Content-Type
에 선언됩니다. 요청 헤더의 속성(클라이언트에서, 서버에 요청할 때) 또는 응답 헤더(서버에서, 응답을 보낼 때).
리소스의 콘텐츠 유형을 명시적으로 선언하지 않으면 클라이언트가 자동으로 유형을 감지하려고 시도하지만 결과가 정확하지 않을 수 있습니다. 이것이 명시적으로 선언하는 것이 중요한 이유입니다.
미디어 유형
미디어 유형은 다양한 형태로 존재합니다. 다양한 그룹으로 분류됩니다.
- 응용 프로그램
- 오디오
- 글꼴
- 예
- 이미지
- 메시지
- 모델
- 멀티파트
- 텍스트
- 동영상
이러한 범주에도 유형이 있습니다. 예:application/json
application
아래의 유형입니다. 및 text/html
text
아래의 유형입니다. .
IANA(인터넷에서 일부 핵심 요소를 조정하는 기관) 미디어 유형에서 전체 미디어 유형 목록을 찾을 수 있습니다.
이러한 모든 유형은 텍스트, 오디오, 이미지, HTML 및 인터넷에서 사용되는 더 많은 유형과 같은 다양한 데이터 유형을 다룹니다.
브라우저는 리소스의 미디어 유형을 알아야 합니다.
위에서 언급했듯이 브라우저는 수신하는 콘텐츠 유형을 알아야 합니다. 다음은 이를 설명하는 예입니다.
다음 코드는 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..");
코드의 세부 사항에 대해 걱정하지 마십시오. 관심 있는 것은 index.htm
뿐입니다. 우리가 제공하는 파일과 Content-Type
text/css
입니다. .
다음은 index.html
의 내용입니다. :
<h1>Homepage</h1>
물론 HTML 문서는 CSS 파일과 다릅니다. 다음은 localhost:5000
에 대한 결과입니다. 서버가 시작될 때:
DevTools의 네트워크 탭에서 헤더를 확인하여 받은 응답을 확인할 수도 있습니다.
Chrome 브라우저의 결과는 다음과 같습니다.
브라우저는 콘텐츠를 CSS 유형으로 가져왔으므로 CSS로 처리하려고 했습니다.
또한 브라우저가 가져온 콘텐츠 유형에 대한 완전한 지식은 브라우저가 해당 데이터에 적용할 보안 표준을 알고 있기 때문에 보안 취약성을 줄여줍니다.
MIME 유형의 개념과 중요성을 이해했으므로 이제 JSON으로 넘어가 보겠습니다.
JSON에 대한 올바른 콘텐츠 유형
JSON을 적절하게 사용하려면 브라우저에서 올바르게 해석해야 합니다. text/plain
일반적으로 JSON에 사용되었지만 IANA에 따르면 JSON의 공식 MIME 유형은 application/json
입니다. .
즉, JSON을 서버로 보내거나 서버에서 JSON을 수신할 때 항상 Content-Type
을 선언해야 합니다. 헤더의 application/json
이것은 클라이언트와 서버가 이해하는 표준이기 때문입니다.
결론
위에서 언급했듯이 서버(브라우저와 마찬가지로)는 POST 요청과 같이 서버에 전송된 데이터 유형을 알아야 합니다. 이것이 forms
의 이유입니다. 파일에는 일반적으로 enctype
가 포함됩니다. 값이 multipart/form-data
인 속성 .
이 방법으로 요청을 인코딩하지 않으면 POST 요청이 작동하지 않습니다. 또한 서버가 얻은 데이터 유형을 알게 되면 인코딩된 데이터를 구문 분석하는 방법을 알게 됩니다.
이 기사에서는 MIME 유형이 무엇이며 그 목적에 대해 살펴보았습니다. 또한 JSON의 공식 콘텐츠 유형을 살펴보았습니다. 인터넷에서 사용할 때 리소스 유형을 선언하는 것이 왜 중요한지 이제 알았기를 바랍니다.