Express가 없는 노드 서버 만들기

이 문서는 클라이언트 - 서버 모델을 간단하게 소개하고 노드를 사용하여 간단한 서버를 만드는 방법을 보여 주는 데 목적을 둔다.우리가 서버의 코드를 어떻게 만드는지 연구하기 전에 먼저 서버가 무엇을 중요한지 알아야 한다.

서버란?


서버는 자산을 저장하고 요청할 때(일반적으로 브라우저를 통해) 이 자산을 제공하는'물건'일 뿐이다.예를 들어, 브라우저를 열고 당신이 가장 좋아하는 사이트를 방문할 때.네가 가장 좋아하는 사이트가 https://www.mountain-forecast.com/라고 가정해 봐.검색창에 당신이 가장 좋아하는 사이트의 URL이나 주소를 입력하고 enter 키를 누르면 서버에 HTTP 요청을 보내고 있습니다.이 서버는 귀하의 요청을 받아 해당하는 자산을 귀하께 돌려드립니다.이러한 자산은 대개 파일 세트(HTML 문서, 이미지, CSS 스타일시트 및 JavaScript 파일)입니다.
이전 단락에서, 나는 좀 더 상세하게 정의해야 할 용어를 사용했다.
내가 서버를 언급한 것은 단지'어떤 물건'일 뿐이다...더욱 구체적으로 말하면 서버는 소프트웨어, 하드웨어 또는 둘의 조합이다.하드웨어는 일반적으로 메모리에 서비스할 자산을 물리적으로 저장하는 컴퓨터다.이 소프트웨어는 일반적으로 웹 사용자 (클라이언트) 가 저장 자산에 어떻게 접근하는지 설명하는 시스템이다.
HTTP는 하이퍼텍스트 전송 프로토콜의 약어입니다.HTTP는 본질적으로 유니버설 네트워크에서 데이터를 전송하는 프로그램이나 규칙 시스템이다.양쪽에서 데이터를 읽을 수만 있다면 어떤 유형의 데이터도 전송할 수 있다.HTTP에 대한 몇 가지 요점은 HTTP가 연결되지 않았다는 것이다.이것은 요청을 보내고 응답을 받은 후에 클라이언트와 서버가 더 이상 연결되지 않는다는 것을 의미한다.그 다음으로 HTTP는 무상태입니다.이것은 클라이언트와 서버가 현재 요청 기간에만 서로 이해한다는 것을 의미한다.일단 요구가 충족되면, 그들은 다른 요구를 할 때까지 상대방을 더 이상 이해하지 못한다.마지막으로 전송층이라는 것도 있다.전송층은 인터넷 프로토콜 세트라고 불리는 방법이나 전송 프로토콜로 데이터가 어떻게 한 곳에서 다른 곳으로 전송되는지 간단하게 정의한다.더욱 구체적으로 말하면, 이 협의는 데이터의 포맷, 주소 찾기, 전송, 루트와 수신 방식을 정의했다.가장 유명한 전송 프로토콜은 전송 제어 프로토콜(TCP)이다.
이제 우리는 클라이언트 - 서버 모델과 HTTP에 대해 조금 알게 되었다. 그것을 코드로 간주할 때가 되었다!

노드가 있는 서버 만들기


NodeJ를 사용하여 서버를 생성하려면 내장 노드 모듈http을 사용합니다.이 모듈은 노드가 하이퍼텍스트 전송 프로토콜을 통해 데이터를 전송할 수 있도록 합니다.
const http = require("http");

// Localhost
const hostname = "127.0.0.1";
const port = 3000;

const server = http.createServer((req, res) => {

    const html = `
        <h1>Hello World!</h1>
        <p>We created our simple server!</p>
    `;

    res.statusCode = 200;
    res.setHeader("Content-Type", "text/html");
    res.write(html);
    res.end();
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
우리는 먼저 ahostnameport를 정의한다.호스트 이름 또는 IP 주소 127.0.0.1은 로컬 호스트일 뿐입니다.원칙적으로, 이것은 당신이 자신의 컴퓨터와 통신하고 있다는 것을 의미한다.포트는 통신 단점이다.같은 IP 주소를 위해 다른 포트를 사용하면 컴퓨터에서 여러 개의 웹 서버를 실행할 수 있습니다.
다음은 createServer() 방법으로 서버를 만듭니다.이 방법은 리셋 함수를 매개 변수로 한다.이 리셋 함수 자체는 두 개의 매개 변수, 하나request와 하나response의 대상을 수신한다.요청 대상은 클라이언트로부터 요청한 정보를 포함합니다.응답은 클라이언트에게 보내는 내용입니다.
이 예에서 우리는 HTTP 상태 코드를 200(OK)으로 설정하고 HTTP 헤더를'text/html'로 설정하여 클라이언트가 우리가 html 코드를 사용하여 응답하고 있음을 알게 하고 응답에서 html 코드를 작성한 후에 응답을 끝낼 수 있도록 한다.
마지막으로 listen() 방법으로 서버를 시작합니다.이 방법은 포트와 호스트를 매개 변수로 삼아 서버의 시작 위치를 파악합니다.이 방법은 서버가 시작된 후에만 실행되는 리셋 함수를 매개 변수로 합니다.이 예에서, 우리는 시작할 때 컨트롤러에 서버에 대한 정보를 기록한다.
우리는 이미 Express가 없는 노드 서버를 성공적으로 만들었습니다.

결론


나는 이것이 웹 서버가 어떻게 작동하고 클라이언트-서버 모델이 어떻게 작동하는지 이해하는 데 좋은 출발점이 되기를 바란다.클라이언트-서버 모델은 단지 유니버설 네트워크를 통해 데이터 통신을 하는 시스템 설계일 뿐이다.HTTP를 사용하여 데이터를 전송하며 양쪽에 클라이언트와 서버에 의존합니다.본고는 매우 기본적인 소개를 제공하는 데 목적을 두고 있지만, 저는 당신이 진일보한 연구를 통해 이 기술을 깊이 연구하도록 격려합니다.이 주제에는 배울 수 있는 재미있는 정보가 많습니다!

연락처


질문이나 의견이 있으면 언제든지 연락 주세요!
  • GitHub:yoshiohasegawa
  • LinkedIn:
  • 트위터:
  • 좋은 웹페이지 즐겨찾기