<서버와 클라이언트>

클라이언트 = 서버에 요청을 보내는 프로그램(컴퓨터)
서버 = 클라이언트에 요청한 정보를 보내며 응답하는 프로그램=> node.js는 서버에서 실행될 프로그램을 만들기 위해서!
<Node.js로 간단한 서버 만들기>

createServer 함수에 인자로 들어오는 함수의 response 인자를 사용하면 클라이언트 요청에 대해 알맞은 응답을 줄 수 있다. response 객체의 end 메소드를 사용하면 원하는 응답을 줄 수 있다.

<URL : Uniform Resource Locator, 웹 상의 특정 자원(html, css, 영상, 이미지 등)위치를 나타낸 문자열>
| https://www.codeit.kr/topics/intro-to-nodejs/lessons/3719 |
https: 스킴(sheme) -> 프로토콜(클라이언트와 서버 간의 통신규약)
www.codeit.kr : 호스트(host) -> 특정 서버를 나타낸다.
/topics/intro-to-nodejs/lessons/3719 : 경로(path) -> 원하는 자원의 위치를 나타낸다. path는 의미를 나타내기 위한 용도, 디렉토리 구조 안에 intro-to-nodejs파일이 없어도 된다. 반드시 서버안에 이런 구조와 디렉토리가 있어야 하는 것은 아니다.
+ ? :쿼리(query) -> 서버에 요청하는 것을 상세하게 표현하기 위해 사용

* www.naver.com 같이 도메인 네임(domain name)을 IP주소로 변환하는 작업을 Domain Name Resolution이라고 한다. Domain Name Resolution을 하는 과정에서 Name Server 네임 서버라고 하는 서버들의 도움이 필요하다.
*http 프로토콜로 클라이언트와 통신할 서버 프로그램은 80번 포트 번호를 갖고 실행되어야 한다. 네트워크의 특정 프로토콜로 클라이언트와 통신을 하는 서버 프로그램은 특정 포트번호를 갖고 실행되야 한다. https 프로토콜의 기본 포트번호는 443번이다.
<URL에 따라 서버가 다른 응답을 주도록 하기>

url 정보는 request 속성으로 들어온다. console.log(request.url)로 출력되는건 url 뒤쪽의 path 부분만이다.
URL 라우팅이란 url에 따라 필요한 정보를 가져오는 과정이다.

request.url = path값이 들어오므로, path값에 따라서 if구문을 활용하여 다른 페이지를 보여 줄 수 있다.



http://127.0.0.1:3000/users -> url이 이렇게 입력이 들어왔을때, request.url은 메인 url을 제외하고 /users가 된다. 따라서, users배열을 모두 출력하게 된다. 만약 127.0.0.1:3000/users/3 -> split으로 나누면 아래처럼 3 부분으로 나뉜다. 이때 1번 ㅑindex가 users이므로, userIdx는 두번째 요소인 3이 된다. 하지만, 배열은 0부터 시작하므로 여기서 0을 제외한 users[userIdx -1]이 userName이 된다.


앞서 배운 내용들을 권장되는 코드 스타일로 바꾸면 이렇게 된다.
변수보다는 상수를, 인자가 있는 함수는 arrow function화살표 함수를 그리고 문자열 템플릿을 활용하는 방법이다.
'웹 개발 > node.js' 카테고리의 다른 글
| [Node.js] node.js express 서드파티 모듈로 URL 라우팅하기 (1) | 2024.01.06 |
|---|---|
| [Node.js] node.js 서드파티 모듈, 비동기 프로그래밍과 콜백함수 (1) | 2024.01.04 |
| [Node.js] node.js 설치 및 실행, 모듈과 코어 모듈, 브라우저와의 차이점 (1) | 2024.01.03 |