1. 간단한 웹 서버 만들기
아래 코드를 작성하고 실행시킨 후 127.0.0.1:3000으로 접속하면 아무것도 나오지 않는다.
서버를 만들긴 했지만 요청 내용을 작성하지 않았기 때문이다.
코드를 아래와 같이 수정한 후에 127.0.0.1:3000에 접속하면 hello world!가 화면에 출력됨을 확인할 수 있다.
2. URL 구조
URL은 Uniform Resource Locater의 약자로, 웹상의 특정 자원의 위치를 나타내는 문자열이다.
특정 자원은 HTML, CSS, JavaScript 파일 등을 의미한다.
https://www.codeit.kr/learn/3719?class=52&lecture=3
위의 URL을 뜯어서 살펴보면,
1) 가장 앞부분에 있는 스킴(scheme)에는 보통 프로토콜(클라이언트와 서버간의 통신규약, 주로 http, https)의 이름이 들어간다. 위에서는 http가 들어가있다.
2) 두 번째 부분은 호스트(host)로, 위에서는 www.codeit.kr가 들어가 있다.
3) 세 번째는 경로(path)로 하나의 서버 안에서 원하는 자원의 위치를 나타낸다. 위에서는 learn/3719이 들어가 있다. 주의할 점은 path는 단지 의미를 나타내는 용도이기 때문에 디렉터리 구조안에 실제 파일이 없을 수도 있다.
4) 마지막으로? 뒤의 부분은 쿼리(query)라고 하는데, 서버에 요청할 때 원하는 것을 상세하게 표현하기 위해 사용한다. 쿼리 부분에 여러 항목이 들어가면 &로 구분한다.
아래 코드를 살펴보자. Node.js에서 제공하는 URL클래스를 사용하여 url 객체를 만들었다.
그리고 url 객체의 각 속성을 출력하는 코드를 작성했다. search는? 와 쿼리를 합친 속성을 가리킨다.
코드의 실행결과는 다음과 같다.
url의 각 부분이 잘 쪼개져서 결과가 출력됨을 알 수 있다. url을 쪼갤 수 있어야 서버 프로그램 내부에서 클라이언트 요청에 의한 url을 자유자재로 처리할 수 있다.
3. 도메인 네임과 IP주소
위의 예시에서 본것 처럼 호스트에는 codeit.kr 같은 문자열이 들어가도 되고, 127.0.0.1 같은 IP주소가 들어가도 된다. codeit.kr 같은 것을 도메인 네임(Domain Name)이라 한다.
하나의 도메인 네임은 여러 개의 도메인으로 구성된다. 상위의 도메인일 수록 도메인 네임 중에서 오른쪽에 있다.
codeit.kr을 예로 들어보자.
도메인의 최상단에는 루트 도메인(Root Domain)이 있는데 이는 빈 문자열로 나타내고 도메인을 입력할때도 표시하지 않는 경우가 많다. 만약 루트 도메인까지 나타내려면 codeit.kr.로 쓰면 루트도메인까지 나타낸 더욱 완벽한 도메인 네임인 것이다.
루트 도메인의 하위에는 Top-Level-Domain(TLD)이 있는데, 도메인 네임 끝의 .kr, .net등이 이에 해당한다. 사이트가 속한 국가 또는 제공하는 서비스의 카테고리를 나타낸다.
각각의 Top-Level-Domain(TLD) 하위에는 Second-Level-Domain(SLD)가 있는데, codeit.kr 에서는 codeit이 이에 해당한다.
4. Domain Name Resolution의 원리
'소프트웨어 공학' 카테고리의 다른 글
Express로 간단한 API Server 만들기 (0) | 2022.02.07 |
---|---|
비동기 함수와 동기함수 / 공식문서에서 readFile, readFileSync 함수 찾아읽기 (0) | 2022.02.03 |
비동기 프로그래밍과 이벤트 (0) | 2022.01.24 |
7가지 자료구조(Data Structure)의 종류와 각각의 장단점 (0) | 2022.01.21 |
차세대 5G 기술 오픈랜(open LAN)의 정의와 향후미래 (0) | 2022.01.19 |
댓글