헤더를 까보기위해 http 모듈로 간단한 서버를 만들어
header에 무슨 정보가 오가는지 확인해보았다.
1. meta-charset의 필요성
const http = require('http')
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html')
res.write('<html>')
res.write('<head><title>덕춘입니다</title></head>')
res.write('<body><h1>ㅎㅇ</h1></body>')
res.write('</html>')
res.end()
})
server.listen(8080)
서버를 위와 같이 개설하고, 페이지를 열면 아래의 스크린샷과 같이 한글이 다 깨져서 나오게 된다.
이유는 헤더에 캐릭터셋을 어떻게 인코딩해야할지 정보를 담아주지 않아서 그렇다.
따라서 인코딩을 어떻게 할 것인지를 헤더파일에 넘겨주면 한글이 잘 나오게 할 수 있다.
const http = require('http')
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html; charset=utf-8')
res.write('<html>')
res.write('<head><title>덕춘입니다</title></head>')
res.write('<body><h1>ㅎㅇ</h1></body>')
res.write('</html>')
res.end()
})
server.listen(8080)
Content-Type에 charset=utf-8이라고 인코딩 정보를 명시해주면 한글이 제대로 출력된다.
위의 상태에서
개발자도구(크롬 기준 F12)를 열어 Network를 확인해보면 아래와 같은 소스를 확인할 수 있다.
Response Headers와
Request Headers가 다른 것을 확인할 수 있다.
여기에 관련된 MDN 문서는 아래에 링크를 걸어놓겠다.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
'네트워크' 카테고리의 다른 글
네트워크 계층 요약 (0) | 2023.07.04 |
---|---|
데이터 링크 계층 요약 (0) | 2023.07.03 |
물리 계층 요약 (0) | 2023.07.03 |
컴퓨터네트워크 기본2 (App계층 및 클라이언트 서버 설계구조) (0) | 2022.12.13 |
컴퓨터네트워크 기본1 (0) | 2022.12.10 |