핸드셰이크는 클라이언트와 서버 간에 통신이 이루어질 때, 양쪽이 서로를 식별하고 서로에게 안전한 연결을 설정하는 과정입니다. 이 과정은 주로 웹 개발에서 사용되는데, 클라이언트가 서버로 요청을 보내면 서버는 이 요청을 받아들이고 클라이언트에게 응답을 보냅니다. 이때 핸드셰이크가 이루어지면서 양쪽이 안전한 통신을 시작합니다.
자바스크립트에서는 이러한 핸드셰이크 과정을 HTTPS(SSL/TLS) 프로토콜을 통해 구현할 수 있습니다.
// 필요한 라이브러리를 불러옵니다. const https = require('https'); // 서버의 정보를 설정합니다. const options = { hostname: 'example.com', // 서버의 도메인 주소 port: 443, // HTTPS 포트 path: '/', // 요청할 경로 method: 'GET', // 요청 메서드 (GET, POST 등) }; // 핸드셰이크를 시작합니다. const req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); // 응답 데이터를 받아옵니다. res.on('data', (d) => { process.stdout.write(d); }); }); // 오류가 발생할 경우 처리합니다. req.on('error', (e) => { console.error(e); }); // 요청을 보냅니다. req.end();
1.위 코드에서는 Node.js의 https 모듈을 사용하여 예제를 작성했습니다. options 객체에는 서버의 도메인 주소, 포트, 요청할 경로 및 요청 메서드 등을 설정합니다. 그 후 https.request() 함수를 사용하여 서버에 요청을 보내 핸드셰이크를 시작하고, 서버의 응답을 받아와 출력합니다.
2.위 코드를 브라우저에서 실행하는 경우, 브라우저 내장의 HTTPS 핸드셰이크가 자동으로 처리되므로 추가적인 코드가 필요하지 않습니다. 하지만 서버 측에서 HTTPS를 지원해야 합니다.