Programming/node.js2019. 3. 27. 17:38

stack의 것은.. 되긴 하는데 단순하게(?) https의 경우 소켓을 통해 바로 연결되는 구조로 되어있다.

http나 https 확실히 무언가 한번 걸린다는 느낌이 드는 딜레이는 어쩔수 없을려나?

 

아무튼 내가 원한건.. 얘가 아니라 직접 URL을 잡아낼수 있어야 하는 녀석... ㅠㅠ

 

// Install npm dependencies first
// npm init
// npm install --save url@0.10.3
// npm install --save http-proxy@1.11.1

var httpProxy = require("http-proxy");
var http = require("http");
var url = require("url");
var net = require('net');

var server = http.createServer(function (req, res) {
var urlObj = url.parse(req.url);
var target = urlObj.protocol + "//" + urlObj.host;

console.log("Proxy HTTP request for:", target);

var proxy = httpProxy.createProxyServer({});
proxy.on("error", function (err, req, res) {
console.log("proxy error", err);
res.end();
});

proxy.web(req, res, {target: target});
}).listen(8080); //this is the port your clients will connect to

var regex_hostport = /^([^:]+)(:([0-9]+))?$/;

var getHostPortFromString = function (hostString, defaultPort) {
var host = hostString;
var port = defaultPort;

var result = regex_hostport.exec(hostString);
if (result != null) {
host = result[1];
if (result[2] != null) {
port = result[3];
}
}

return ( [host, port] );
};

server.addListener('connect', function (req, socket, bodyhead) {
var hostPort = getHostPortFromString(req.url, 443);
var hostDomain = hostPort[0];
var port = parseInt(hostPort[1]);
console.log("Proxying HTTPS request for:", hostDomain, port);

var proxySocket = new net.Socket();
proxySocket.connect(port, hostDomain, function () {
proxySocket.write(bodyhead);
socket.write("HTTP/" + req.httpVersion + " 200 Connection established\r\n\r\n");
}
);

proxySocket.on('data', function (chunk) {
socket.write(chunk);
});

proxySocket.on('end', function () {
socket.end();
});

proxySocket.on('error', function () {
socket.write("HTTP/" + req.httpVersion + " 500 Connection error\r\n\r\n");
socket.end();
});

socket.on('data', function (chunk) {
proxySocket.write(chunk);
});

socket.on('end', function () {
proxySocket.end();
});

socket.on('error', function () {
proxySocket.end();
});

});


[링크 : 
https://stackoverflow.com/questions/8165570/https-proxy-server-in-node-js/32104777]

[링크 : https://www.npmjs.com/package/httpp-proxy]

 

이거랑 위에꺼랑 어떻게 믹스하지? ㅠㅠ

[링크 : http://blog.saltfactory.net/implements-nodejs-based-https-server/]

 

+

2019.04.02

취향대로 좀 정리한 버전

var http = require('http');
var httpProxy = require('http-proxy');
var url = require('url');
var net = require('net');

var server = http.createServer(onReq);
server.addListener('connect', onConn);
server.listen(8080);

function onReq(req, res)
{
        var urlObj = url.parse(req.url);
        var target = urlObj.protocol + "//" + urlObj.host;
        console.log(urlObj.href);

        var proxy = httpProxy.createProxyServer({});
        proxy.on("error", function (err, req, res) {
                console.log("proxy error", err);
                res.end();
        });

        proxy.web(req, res, {target: target});
}

function onConn(req, socket, bodyhead)
{
        var hostPort = getHostPortFromString(req.url, 443);
        var hostDomain = hostPort[0];
        var port = parseInt(hostPort[1]);
        console.log("Proxying HTTPS request for:", hostDomain, port);

        var proxySocket = new net.Socket();
        proxySocket.connect(port, hostDomain, function () {
                proxySocket.write(bodyhead);
                socket.write("HTTP/" + req.httpVersion + " 200 Connection established\r\n\r\n");
        });

        proxySocket.on('data', function (chunk) {
                //console.log(chunk.toString());
                socket.write(chunk);
        });

        proxySocket.on('end', function () {
                socket.end();
        });

        proxySocket.on('error', function () {
                socket.write("HTTP/" + req.httpVersion + " 500 Connection error\r\n\r\n");
                socket.end();
        });

        socket.on('data', function (chunk) {
                //console.log(chunk.toString());
                proxySocket.write(chunk);
        });

        socket.on('end', function () {
                proxySocket.end();
        });

        socket.on('error', function () {
                proxySocket.end();
        });
}

{
}

var regex_hostport = /^([^:]+)(:([0-9]+))?$/;

var getHostPortFromString = function (hostString, defaultPort)
{
        var host = hostString;
        var port = defaultPort;
        var result = regex_hostport.exec(hostString);
        if (result != null)
        {
                host = result[1];
                 if (result[2] != null) { port = result[3]; }
        }
        return ( [host, port] );
};

'Programming > node.js' 카테고리의 다른 글

proxy http node.js  (0) 2019.04.01
TypeError: Converting circular structure to JSON  (0) 2019.03.27
node.js unit test  (0) 2019.03.25
node.js http cache proxy  (0) 2019.03.20
node.js 사용자 모듈 만들기  (0) 2019.03.13
Posted by 구차니
Programming/node.js2019. 3. 25. 19:01

mocha 패키지

CUnit이니 JUnit 이니 듣긴했는데 안써봐서..

그래도 한번 서버 어플리케이션을 만드니 써봐야겠...지? ㅠㅠ


[링크 : https://www.npmjs.com/package/mocha]

[링크 : https://mochajs.org/#getting-started]

[링크 : http://blog.jeonghwan.net/mocha/]

[링크 : https://blog.outsider.ne.kr/770]

[링크 : http://webframeworks.kr/tutorials/expressjs/expressjs_test_code/]

'Programming > node.js' 카테고리의 다른 글

TypeError: Converting circular structure to JSON  (0) 2019.03.27
https proxy using node.js  (0) 2019.03.27
node.js http cache proxy  (0) 2019.03.20
node.js 사용자 모듈 만들기  (0) 2019.03.13
ckeditor 와 php, node.js 연동  (0) 2019.03.11
Posted by 구차니
Programming/Java(Spring)2019. 3. 25. 17:00

아래와 같은 에러가 발생해서 찾는 중

org.springframework.orm.jpa.JpaSystemException: Transaction was marked for rollback only; cannot commit; nested exception is org.hibernate.TransactionException: Transaction was marked for rollback only; cannot commit


먼 소리인지 눈에도 안들어 오는데 어떻게 해야하려나.. ㅠㅠ

[링크 : http://woowabros.github.io/experience/2019/01/29/exception-in-transaction.html]

'Programming > Java(Spring)' 카테고리의 다른 글

spring war와 war.original  (0) 2019.04.23
java app 메모리 상태 확인하기  (0) 2019.04.18
spring boot cassandra  (0) 2019.03.08
gradle 에 jar 추가하여 빌드하기  (0) 2019.03.08
maven 빌드하기  (0) 2019.03.08
Posted by 구차니
Programming/node.js2019. 3. 20. 18:54

squid 프록시 설정 만지다가 빡쳐서

어짜피 프록시 HTTP 서버라던가 이런걸텐데 그럼 단순(?)하게

HTTP 서버로 구성해서 해당 URL을 파싱 해서

로컬 캐시에 없으면 요청하고 저장후 전달해주면 되는거 아냐? 라는 생각에 검색해보니 똭!


[링크 : https://www.npmjs.com/package/caching-proxy]


'Programming > node.js' 카테고리의 다른 글

https proxy using node.js  (0) 2019.03.27
node.js unit test  (0) 2019.03.25
node.js 사용자 모듈 만들기  (0) 2019.03.13
ckeditor 와 php, node.js 연동  (0) 2019.03.11
floala 에디터 + node.js  (0) 2019.03.08
Posted by 구차니
Programming/angular2019. 3. 18. 10:14

요즘 머리가 굳어서 안돌아가나..

예제가 친절하게 있어도 어떻게 쓰는지 감이 1도 안온다.. ㅠㅠ


아무튼 make -j 처럼 멀티코어 빌드하는 방법을 찾아보는 중


[링크 : https://www.npmjs.com/package/parallel-webpack-ng]

[링크 : https://survivejs.com/webpack/optimizing/performance/]

[링크 : https://blog.box.com/blog/how-we-improved-webpack-build-performance-95]

'Programming > angular' 카테고리의 다른 글

angular with reverse proxy  (0) 2019.03.18
angular4 ie11 호환성 설정  (0) 2019.02.18
angular proxy  (0) 2018.11.02
vscode 및 angular.js 셋팅..  (0) 2018.08.08
Posted by 구차니
Programming/angular2019. 3. 18. 10:06

packge.json에

proxy.conf.json을 추가하여 빌드시에 적용하는 듯



{

  "/api": {

    "target": "http://localhost:3000",

    "secure": false

  }


"architect": {

  "serve": {

    "builder": "@angular-devkit/build-angular:dev-server",

    "options": {

      "browserTarget": "your-application-name:build",

      "proxyConfig": "proxy.conf.json"

    },



[링크 : https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md]

[링크 : https://gompro.postype.com/post/732269]



+

예전에 단순하게 url만 상대경로로 바꾸고 시도를 했었는데 제대로 안되서

넘어갔었는데 이 부분이 누락되서 그랬던 듯

'Programming > angular' 카테고리의 다른 글

angular 빌드 최적화(?)  (0) 2019.03.18
angular4 ie11 호환성 설정  (0) 2019.02.18
angular proxy  (0) 2018.11.02
vscode 및 angular.js 셋팅..  (0) 2018.08.08
Posted by 구차니
Programming/android2019. 3. 14. 16:13

adb에서 설정해주고 android studio 에서 장치 붙이기 누르면 바로 뜬다고..


[링크 : https://itmir.tistory.com/594]

[링크 : https://blog.asamaru.net/2015/09/07/android-run-slash-install-slash-debug-applications-over-wifi/]

[링크 : https://developer.android.com/studio/command-line/adb?hl=ko]

'Programming > android' 카테고리의 다른 글

android studio /dev/kvm permission denied  (0) 2019.06.11
ubuntu android studio  (0) 2019.06.10
AndroidManifest.xml (binary) 디코더  (0) 2019.03.14
android REST client  (0) 2019.02.07
안드로이드 주기적 작업  (0) 2019.01.25
Posted by 구차니
Programming/android2019. 3. 14. 16:02

apk 안에들어있는 녀석은 이진화 되어있어서 볼 수 없는데(그럼 xml이라고 하지말던가!)

axmldec 받아서 apk 를 지정해주면 xml로 뱉어내준다. (xml 파일을 압축 풀어서 하는게 아님)


[링크 : https://github.com/ytsutano/axmldec]

  [링크 : https://android.stackexchange.com/questions/197182/apks-androidmanifest-xml-looks-to-be-binary]

'Programming > android' 카테고리의 다른 글

ubuntu android studio  (0) 2019.06.10
안드로이드 무선 디버깅(adb wifi)  (0) 2019.03.14
android REST client  (0) 2019.02.07
안드로이드 주기적 작업  (0) 2019.01.25
액티비티 인텐트  (0) 2019.01.25
Posted by 구차니

패킹 혹은 난독화라고 해야 하려나?

패킹은 단순하게 base62로 인코딩 한 것을 eval을 통해서 실행하는 구조인 거라

난독화라 하긴 애매한 녀석이고


짧은 녀석을 패킹하니 오히려 더 데이터가 많아지는 현상이 발생!

var aasdfasdf = 'asdfasfasdf';

console.log("aasdfasdf :"+aasdfasdf); 


대충봐도 어떤 구조인지 그냥 눈에 보이는 느낌적인 느낌?

eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1 0=\'2\';3.4("0 :"+0);',5,5,'aasdfasdf|var|asdfasfasdf|console|log'.split('|'),0,{})) 


[링크 : https://fimtrus.tistory.com/entry/자바스크립트-난독화패킹-언패킹]

  [링크 : http://dean.edwards.name/packer/]

  [링크 : https://www.strictly-software.com/unpacker#unpacker]

[링크 : https://xetown.com/questions/494426]

[링크 : https://12bme.tistory.com/357]


한 10만원 하는 프로그램이 쩐다고(압축율에서)

[링크 : https://allroundplaying.tistory.com/59]


[링크 : https://obfuscator.io/] 얜 무료


원리관련

[링크 : https://4rgos.tistory.com/2]

Posted by 구차니
Programming/node.js2019. 3. 13. 13:47

전에 적었나? 기억 안나니 다시 씀


express를 쓰다 보면 가장 마지막 줄에

module.exports = router; 

요런게 보이는데 모듈로 정의해주는 녀석이다.


여러가지 방법들이 보이는데, 취향대로 쓰면 될 듯

(개인적으로는 작성하고 모듈로 변환하는 쪽이라서 가장 아래꺼를 주로 쓰게 될 듯)

export.func_name = function () {}


module.exports = {

   funcname : function() {}

};


function funcname() {};

module.exports = {

   funcname : funcname

}; 


[링크 : https://hongku.tistory.com/92]

[링크 : https://winmargo.tistory.com/173] DAO

[링크 : https://jiwondh.github.io/2017/01/17/create-module/]

[링크 : https://doitnow-man.tistory.com/161]

'Programming > node.js' 카테고리의 다른 글

node.js unit test  (0) 2019.03.25
node.js http cache proxy  (0) 2019.03.20
ckeditor 와 php, node.js 연동  (0) 2019.03.11
floala 에디터 + node.js  (0) 2019.03.08
wysiwyg editor / node.js  (0) 2019.02.26
Posted by 구차니