DevOps 7일차 - 웹서비스 접근하기(예습)

문한성·2023년 3월 15일
0

부트캠프

목록 보기
11/123
post-thumbnail

URL과 URI

https://hansungmoon.github.io/HTTP/

URL과 URI는 모두 인터넷에서 리소스를 식별하는 데 사용되는 용어입니다. 그러나 두 용어는 약간 다른 의미를 가지고 있습니다.

URI는 "Uniform Resource Identifier"의 약자이며, 인터넷에서 고유한 식별자를 가진 리소스를 식별하는 데 사용됩니다. URI는 URL과 URN(Uniform Resource Name)으로 구성됩니다.

URL은 "Uniform Resource Locator"의 약자이며, 인터넷에서 특정 리소스의 위치를 식별하는 데 사용됩니다. URL은 프로토콜, 호스트, 경로 및 파일 이름 등의 구성 요소로 구성됩니다. 예를 들어, "https://www.example.com/index.html"은 URL입니다.

반면에 URN은 "Uniform Resource Name"의 약자이며, 특정 리소스에 대한 고유한 이름을 제공합니다. 예를 들어, "urn:isbn:0-395-36341-1"은 URN입니다.

따라서, URI는 URL과 URN을 포함하며, URL은 인터넷에서 특정 리소스의 위치를 식별하는 데 사용되는 특수한 유형의 URI입니다.

URL의 구조는 다음과 같습니다.

[protocol]://[hostname or IP address]:[port]/[path]/[filename]

여기서 protocol은 통신 프로토콜 (예 : HTTP, HTTPS 등)을 나타내며, hostname은 호스트 이름 또는 IP 주소를 나타냅니다. port는 포트 번호 (기본값은 80입니다.)를 나타내며, path는 리소스가 있는 디렉토리 또는 폴더를 나타내며, filename은 리소스의 이름 및 확장자를 나타냅니다.

예를 들어, "https://www.example.com/index.html"의 경우, protocol은 HTTPS이고 hostname은 "www.example.com"입니다. path는 "/ "이고 filename은 "index.html"입니다.

즉, URI는 인터넷에서 고유한 식별자를 나타내며, URL은 인터넷에서 리소스의 위치를 나타내는 특수한 유형의 URI입니다.

일반적으로 URI는 다음과 같은 형식을 가집니다.

iniCopy code
scheme:[//authority]path[?query][#fragment]

위의 구조에서 scheme은 리소스에 접근하는 데 사용되는 프로토콜을 나타냅니다. 예를 들어, "http" 또는 "https"는 웹 페이지에 액세스하기 위한 프로토콜입니다.

authority는 리소스의 위치 또는 권한을 나타냅니다. 이 구성 요소는 선택적이며, 인터넷 상에서 리소스가 호스팅되는 서버의 도메인 이름이나 IP 주소를 포함할 수 있습니다.

path는 리소스가 위치한 경로를 나타냅니다. 이 구성 요소는 필수적이며, 리소스의 위치를 나타냅니다.

query는 선택적이며, URI를 통해 리소스에 전달되는 매개 변수와 값으로 이루어진 질의 문자열을 나타냅니다. 이 구성 요소는 주로 검색 엔진에서 사용됩니다.

fragment는 선택적이며, 리소스의 일부를 가리키는 앵커를 나타냅니다. 이 구성 요소는 웹 페이지에서 특정 위치로 스크롤하거나 리소스의 일부를 강조하기 위해 사용됩니다.

IP와 Port

IP는 인터넷 프로토콜 주소로, 컴퓨터나 기기가 인터넷에 접속하기 위해 사용하는 고유한 식별자입니다. IP는 인터넷상에서 데이터를 주고받을 때, 데이터의 발신지와 수신지를 정확하게 지정하기 위해 사용됩니다.

IP는 보통 네 개의 0부터 255까지의 숫자로 구성된 네트워크 주소와 호스트 주소를 결합하여 사용합니다. 이를 IPv4라고 부릅니다. 하지만 최근 인터넷 이용자 수가 급격히 증가하면서 주소 공간 부족 문제가 발생하게 되어, IPv6라는 새로운 IP 주소 체계가 등장하였습니다.

Port는 인터넷상에서 데이터가 전송될 때, 데이터가 전송되는 대상의 서비스를 구분하기 위해 사용되는 번호입니다. 각 서비스는 고유한 포트 번호를 가지며, 예를 들어 웹 브라우저는 보통 80번 포트를 사용합니다.

포트는 0부터 65535까지의 숫자 중 하나를 사용하며, 0부터 1023까지는 잘 알려진 포트 번호로 사용되어 있습니다. 이외의 포트는 일반적으로 사용자가 직접 정하여 사용하게 됩니다.

도매인과 DNS

https://velog.io/@arnold_99/DevOps-6일차-DNS예습

발표과제

Public IP와 Private IP의 차이

Public IP와 Private IP는 인터넷 프로토콜 주소(IP 주소)를 말합니다. 이 둘은 네트워크에서 서로 다른 목적으로 사용됩니다.

Public IP는 인터넷 서비스 제공자(ISP)에서 할당하는 고유한 IP 주소입니다. 이 IP 주소는 인터넷에서 직접 접근 가능한 주소이며, 인터넷을 통해 다른 컴퓨터와 통신할 때 사용됩니다. 예를 들어, 웹 사이트를 호스팅하는 서버의 IP 주소는 공용 IP입니다.

Private IP는 로컬 네트워크에서 사용하는 IP 주소입니다. 이 주소는 인터넷에서 접근할 수 없으며, 로컬 네트워크 내에서만 사용됩니다. 로컬 네트워크는 가정, 학교, 회사 등 내부 네트워크를 말합니다. Private IP 주소는 서로 다른 네트워크에서 중복될 수 있기 때문에 공용 IP와는 다릅니다.

즉, Public IP는 인터넷을 통해 다른 컴퓨터와 통신하기 위한 고유한 주소이고, Private IP는 로컬 네트워크 내에서 통신하기 위한 주소입니다.

nslookup 명령

nslookup 명령은 네트워크 관리 도구 중 하나로, DNS(Domain Name System)에 관한 정보를 조회하는 명령어입니다.

예를 들어, 특정 도메인 이름의 IP 주소를 조회하거나, 도메인 이름과 관련된 DNS 레코드 정보를 확인할 수 있습니다.

nslookup 명령을 실행하려면, 명령 프롬프트 창에서 "nslookup"을 입력하고 조회하고자 하는 도메인 이름을 입력하면 됩니다.

예시)

nslookup www.google.com

위와 같이 입력하면, 구글의 웹사이트 주소에 해당하는 IP 주소와 함께, 해당 도메인 이름과 관련된 DNS 레코드 정보가 출력됩니다.

"nslookup www.google.com" 명령을 실행하면, 다음과 같은 결과값이 출력됩니다.

Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    www.google.com
Addresses:  2404:6800:4004:811::2004
          172.217.31.68

위의 결과에서 첫 두 줄은 DNS 서버의 정보입니다. "UnKnown"은 DNS 서버의 이름을 나타내는데, 이 경우에는 알 수 없는 이름으로 표시됩니다. "192.168.1.1"은 이 시스템이 사용하는 DNS 서버의 IP 주소입니다.

세 번째 줄부터는 조회한 도메인 이름과 관련된 정보가 출력됩니다. 위의 결과에서는 "www.google.com" 도메인 이름에 대한 IP 주소 정보가 출력됩니다. 이 도메인 이름은 IPv6 주소와 IPv4 주소 두 가지가 있습니다.

또한, nslookup 명령에는 다양한 옵션을 사용하여 조회 결과를 세부적으로 제어할 수 있습니다. 예를 들어, "nslookup -type=mx google.com" 명령을 실행하면, 구글의 메일 서버에 대한 정보가 출력됩니다. 이처럼 nslookup 명령은 다양한 방법으로 활용할 수 있습니다.

검색창에 http://google.com을 검색하면, DNS에서 하는일

http://google.com을 검색하면, 먼저 사용자의 컴퓨터나 모바일 기기의 브라우저가 로컬 DNS 캐시에 존재하는지 확인합니다. 로컬 DNS 캐시에 해당 정보가 없으면, 브라우저는 컴퓨터나 모바일 기기에 설정된 기본 DNS 서버에 해당 정보를 조회하기 위한 DNS 쿼리를 보냅니다.

DNS 쿼리는 계층 구조를 갖고 있으며, 브라우저가 보낸 쿼리는 먼저 루트 DNS 서버에 도착합니다. 루트 DNS 서버는 전 세계에 13개가 운영되며, 이 서버들은 최상위 도메인(.com, .org, .net 등)에 대한 DNS 정보를 담고 있습니다. 따라서 브라우저가 보낸 쿼리가 .com 도메인에 속한다면, 루트 DNS 서버는 .com 도메인에 대한 정보를 알고 있는 .com 도메인의 DNS 서버 정보를 브라우저에게 전달합니다.

그 다음 브라우저는 전달받은 .com 도메인의 DNS 서버 정보를 사용하여 해당 도메인 이름에 대한 IP 주소를 조회합니다. http://google.com의 경우, .com 도메인의 DNS 서버에서 "google.com" 도메인 이름에 대한 IP 주소를 조회합니다. 조회된 IP 주소 정보는 브라우저에게 전달되고, 브라우저는 해당 IP 주소로 HTTP 요청을 보내서 구글의 웹 페이지를 불러옵니다.

따라서, http://google.com을 검색하면, 로컬 DNS 캐시나 설정된 DNS 서버에 http://google.com에 대한 IP 주소 정보가 없는 경우, DNS 쿼리가 루트 DNS 서버부터 시작하여 해당 도메인에 대한 IP 주소를 찾아가는 과정이 진행됩니다. 이 과정에서 각 단계마다 다른 DNS 서버에서 도메인에 대한 정보를 조회하고, 결과를 전달하는 일련의 과정이 수행됩니다.

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글