오늘 스터디하다가, <script type=” “></script>에서 쓰이는 type의 형태에 대해서 잠깐 언급이 되서 정확하게 무슨 차이가 있는지.. 알아보기위해 또 검색을 시작했다.
사실 내가 알고 싶었던건…
text/javascript 와 application/javascript 그리고 application/x-javascript 로 선언된것들의 미묘한 차이였다.
그래서 찾아본 문서는 IETF에서 발행한 RFC4329 문서의
Scripting Media Types 라는 원문을 참고했다.
통번역을 하려고 했으나.. 기술문서라서.. 통번역보다는 그냥 중요부분만 발췌하기로 한다.
스크립팅 미디어 타입은 아래와 같이 다양하게 존재한다.
+-----------------------------------------------------+
| text/javascript | text/ecmascript |
| text/javascript1.0 | text/javascript1.1 |
| text/javascript1.2 | text/javascript1.3 |
| text/javascript1.4 | text/javascript1.5 |
| text/jscript | text/livescript |
| text/x-javascript | text/x-ecmascript |
| application/x-javascript | application/x-ecmascript |
| application/javascript | application/ecmascript |
+-----------------------------------------------------+
하지만, text 라는 시작하는 타입들은 문제의 소지가 있다고 알려져 있기때문에 RFC4329 문서에서는 text/javascript와 text/ecmascript에 “obsolete” 즉, 시대에 뒤진 혹은 안 쓰이는 것으로 표기하고, 대신에 application/javascript 와 application/ecmascript 를 쓸것을 권하고 있다.
이유는 간단히 얘기하면,.. 구현정의에 있어서.. SHOUD와 MUST의 차이..
그리고 RECOMMENDED와 REQUIRED 라는 단어의 차이다.
application/ecmascript는 must와 required 로 정의되기때문에.. 이 스크립팅 타입을 쓰게 되면, 좀더 명확한 사용과 어디에 무슨 용도로 쓸때인지를 명확하게 정의할수 있고, 장려할수 있다는 얘기가 되고, 반대로 text/javascript 일 경우에는 너무 널리 사용되기때문에.. 편법이나, 오용할 소지가 있다는 늬앙스를 가지고 있다.
여튼, 문서를 좀더 자세히 살펴보면,
소스코드 해석문제, 보다 상세히 얘기하면, 바이너리 소스코드도 소스코드로 해석이 되는데, 이런 바이너리 소스코드를 엔진이 실행할때, 인코딩방법의 차이가 있단다..
그리고 보안 이슈도 있다.
보안 이슈는 인젝션 공격이라든가, 머 이러저러한 이야기들이 문서안에 있는데…
자세한 내용은 원문을 보길 바란다.
원문을 보기 싫은 사람은 나중에 내가 번역해서 올리길 기다하시길~@@ ㅋㅋ
오늘 여기까지고 어여 자야겠다.. 쓩~!