[HTML] html-equiv meta ํ๊ทธ ์์ฑ์ ์์๋ณด์
Meta Tag ๋ฟ์๊ธฐ 1ํธ - html-equiv ์์ฑ์ด ์ด๋ค ์ด์ ๋ก ๋ง๋ค์ด์ง๊ฑด์ง, ์ค์ ์ด๋ป๊ฒ ์ฐ์ด๊ณ ์๋ ์ง๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
WHY? html-equiv ์์ฑ์ ์ ํ์ํ ๊น?
html-equiv ๋ ๋ฌธ์์ ์ด๊ธฐ์ ๋ณด๋ฅผ ๋ํ๋ด์ฃผ๋ ์์ฑ์ด๋ค. HTTP ์๋ต ํค๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ๋ ์ฌ์ฉํ ์ ์๋ค. HTTP ์๋ต ํค๋๋ ์๋ฒ๋จ์์๋ ๋ฃ์ ์ ์์ง๋ง, ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๋ค๊ฑฐ๋ ํ๋ ๊ฒฝ์ฐ์ HTML meta tag ์ http-equiv ์์ฑ์ ๋ฃ์ผ๋ฉด HTTP ์๋ต ํค๋์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ๊ฒ ๋๋ค.
html-equiv ์์ฑ์ ์ข ๋ฅ
- content-type: ํด๋น ๋ฌธ์์ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋ช ์ํจ
- default-style: ์ฐ์ ์ ์ผ๋ก ์ ์ฉํ ์คํ์ผ์ํธ๋ฅผ ๋ช ์ํจ
- refresh: ํด๋น ๋ฌธ์๋ฅผ ์๋ก๊ณ ์นจ(refresh)ํ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ช ์ํจ
- X-UA-Compatible: IE๋ ์น ํ์ค์ ๋ฐ๋ฅธ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ด์, ํธํ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ๊ทธ๋์ ๊ฐ๋ฐํ ๋ IE ํธํ์ ๊ณ ๋ คํ๋ฉฐ ๊ฐ๋ฐ์ ํ๊ฒ ๋๋๋ฐ, ๋น์ ๊ฐ๋ฐ ๋จ๊ณ์์ ๊ณ ๋ คํ๋ ์ฌ์ดํธ ๋ฒ์ ์ ์๋ ค์ค๋ค.
- Content-Security-Policy: XSS ๋ฐ ๋ฐ์ดํฐ ์ฝ์ ๊ณต๊ฒฉ์ ๋น๋กฏํ ํน์ ์ ํ์ ๊ณต๊ฒฉ์ ๊ฐ์งํ๊ณ ์ํํ๋ ๋ฐ ๋์์ด ๋๋ ์ ์ฑ ์ ๊ตฌ์ฑํ๋ค.
- origin-trial: ์์ง ์คํ๋จ๊ณ์ธ ์์ฑ์ ๋ฃ๋๋ค. web ๊ฐ๋ฐ์๋ค์ ์คํ ๋จ๊ณ์ธ ์์ฑ์ ์ฌ์ฉํด๋ณด๊ณ , ์ปค๋ฎค๋ํฐ์ ํผ๋๋ฐฑ์ ์ค๋ค.
์ฝ๋ ์์
<head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta http-equiv="default-style" content="some stylesheet"> ย ย <meta http-equiv="refresh" content="5"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';"> <meta http-equiv="origin-trial" data-feature="Mute in Picture-in-Picture window" data-expires="2019-05-21" content="...."/> </head>
http-equiv="origin-trial" ๋ทํ๋ฆญ์ค ์ฌ์ฉ ์์
๋ทํ๋ฆญ์ค ์ฒซ ํ๋ฉด
๋ทํ๋ฆญ์ค ์ด๊ธฐ ํ๋ฉด์ ๋ฏ์ด๋ณด๋ค๊ฐ, http-equiv="origin-trial"๋ฅผ ๋ฉํํ๊ทธ์ ์ฐ๊ณ ์๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
๋ทํ๋ฆญ์ค ๋ฉํ ํ๊ทธ์ ์๋ html_equiv ์์ฑ
Content-Type ์ ๋ณดํต์ ์ฌ์ดํธ์์ ๋๋ถ๋ถ ๋ฃ๊ณ ์๋ Meta tag ์ด๊ณ , ์ญ์ ๋ฏธ๊ตญ์ IE ๋ฅผ ๋ฒ๋ ค์ ๊ทธ๋ฐ๊ฐ X-UA-Compatible ๋ฅผ ๋ฃ์ง๋ ์๊ณ ์๋ค. (๋ถ๋ฝ.. ๐ฅฒ๐ฅฒ)
ํฅ๋ฏธ๋ก์ ๋ ๊ฒ์ httm-equiv origin-trial ์ ๋ฃ๊ณ ์๋ ๊ฒ์ด์๋ค.
<meta http-equiv="origin-trial" data-feature="Mute in Picture-in-Picture window" // ํ๋ฉด ์๋ก ๋์์ ๋น๋์ค ์ฌ์ํด์ฃผ๋ ๊ธฐ๋ฅ data-expires="2019-05-21" content="...."/> // mute-token ์ด ๋ค์ด๊ฐ๋ค.
์ ์ฝ๋๋ ๋ทํ๋ฆญ์ค์ ์ฌ์ด์ ธ ์๋ meta tag ์ธ๋ฐ, http-equiv="origin-trial" ๋ฅผ ๋ณด์์ ํด๋น ์์ฑ์ ์์ง ์คํ ๋จ๊ณ์ ์๋ ์์ฑ์์ ์ ์ ์๊ณ , data-feature="Mute in Picture-in-Picture window" ๋ฅผ ์กฐ์ฌํด ๋ณด๋ PIP (ํ๋ฉด ์์์ ํ๋ฉด์ ๋์ฐ๋ ๊ธฐ๋ฅ)์์ ๋์์์ ์ฌ์ํ ๋ mute ๊ฐ ๊ฐ๋ฅํ๊ฒ ํ๋ feature ์์ ์ ์ ์์๋ค.
๋ทํ๋ฆญ์ค ํฝ์ณ ์ธ ํฝ์ณ ์์
origin-trial ์ ๋ํด์๋ ๋งํฌ์ ๋ค์ด๊ฐ๋ฉด ์์ธํ ๋ด์ฉ์ ๋ณผ ์ ์๋ค.
http-equiv="X-UA-Compatible" ๋ค์ด๋ฒ ์ฌ์ฉ ์์
๋ค์ด๋ฒ ์ฒซ ํ๋ฉด ์์
github, netflix ๋ฑ์์๋ http-equiv="X-UA-Compatible" ๋ฅผ ์ฐ๊ณ ์์ง ์์ง๋ง ๊ตญ๋ด ์ฌ์ดํธ๋ค (naver, gmarket, yes24, toss ๋ฑ) ์์๋
<meta http-equiv="X-UA-Compatible" content="IE=edge">๋ฅผ ์ ๋ฃ์ด์ฃผ๊ณ ์๋ค. ์ด ๊ฒฝ์ฐ ์ต์ ๋ชจ๋๋ก ์ง์ ๋ DOCTYPE์ ์๊ด์์ด IE8 ์ด์ ๋ฒ์ ์์ ํญ์ ์ต์ ํ์ค ๋ชจ๋๋ก ๋ ๋๋ง๋๋ค.
๐ก๐ก๐ก๐ฉ๐ปโ๐ป๐ฉ๐ปโ๐ป
๊ฐ์ธ์ ์ผ๋ก ๋ค์์๋ Content-Security-Policy ๋ฅผ ์ ๊ฒฝ์จ๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ํด๋ผ์ด์ธํธ ๋จ์์์๋ http ์๋ต ํค๋๋ฅผ ์ ๊ฒฝ์ธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ๋ชฐ๋๋๋ฐ, ์ฌ๋ฌ ์ฌ์ดํธ๋ค์ ์กฐ์ฌํด ๋ณด๋ ํ์๋ก ์ ๊ฒฝ์จ์ค์ผ ํ๋ ๋ถ๋ถ์ผ๋ก ๋ณด์ธ๋ค.