Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정규식 문자열 출력
- c3 초
- linux시간으로 변경
- 정규식 컴파일
- semanage
- 백준
- regex_search
- influxdb 설치
- 1697
- c3 second
- centos pyhon 설치
- c3 step graph
- gcc 업데이트
- c3 축 없애기
- InfluxDB
- python subprocess
- selinux port 등록
- grafana dashboard
- snmp
- c3 축 가리기
- subporcess path
- python os
- 정규식 활용
- snmp test
- c++ 정규식
- CentOS7
- telegraf
- gcc regex
- g++ 업데이트
- python popen
Archives
- Today
- Total
리셋 되지 말자
[express] 미들웨어 - compression 본문
글 작성
아무거나 양이 많은 글을 복사해서 게시물을 하나 작성한다.
우측 하단에서 전송된 데이터 량이 22.7kB인 것을 확인할 수 있다.
미들웨어를 이용한 압축하기
nodejs 웹서버에서 특정 방식으로 압축을 진행한 뒤, 데이터를 웹 브라우저에 전송할 때 압축된 데이터와 함께 어떤 방식으로 압축했는지를 같이 보낸다. 그러면 웹 브라우저는 해당 방식으로 압축을 해제한 뒤 사용한다.
압축을 하고, 압축을 푸는 비용이 네트워크 전송 비용보다 저렴하다고 한다.
압축을 하는 과정과 압축을 푸는 과정을 미들웨어가 '대신'해준다.
compression 설치 (compression이 한국말로 압축이라고 한다.)
(expressjs.com/en/resources/middleware/compression.html)이 사이트의 설명대로, npm을 통해 설치한다.
$ npm install compression --save
사용을 위해 모듈로 선언 및 가져온다.
var compression = require('compression')
- 사용법
var compression = require('compression')
var express = require('express')
var app = express()
app.use(compression({ filter: shouldCompress }))
function shouldCompress (req, res) {
if (req.headers['x-no-compression']) {
// don't compress responses with this request header
return false
}
// fallback to standard filter function
return compression.filter(req, res)
}
var compression으로 선언한 뒤, compression() 함수가 미들웨어를 리턴하고, app.use를 통해 compression을 '장착'한다.
- 실제 코드 일부
const express = require('express')
const app = express()
const port = 80
const topic = require('./lib/topic');
const qs = require('querystring');
var db = require('./lib/db');
var template = require('./lib/template');
var compression = require('compression')
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(compression());
app.use(compression())으로 간단하게 사용 시작한다.
결과
전송된 데이터 량이 157 B인 것을 확인할 수 있다.
Response Headers를 확인하면 'Content-Encoding'이 gzip인 것을 확인할 수 있다.(gzip 방식으로 압축되어서 전송되었다는걸 뜻하는 것 같다.)
'NodeJS > 생활코딩' 카테고리의 다른 글
[express] 에러 처리하기 (0) | 2020.09.23 |
---|---|
[express] 미들웨어 만들기 (0) | 2020.09.23 |
[express] 미들웨어 - body parser (0) | 2020.09.23 |
[express] 루트 페이지 작성, pretty url (0) | 2020.09.21 |
[NodeJS] SQL Injection (2) | 2020.09.19 |
Comments