코딩공부/T.I.L

2022-01-27 브라우저의 작동 원리(보이지 않는 곳)

지구야 사랑해 2022. 1. 27. 10:44

URL(Uniform Resource Locator)과 URI(Uniform Resource Identifier)

 

브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타냄

 

예를들어 https://codestates.com:443/ 에 접속하면 코드스테이츠 주소가 가리키는 서버의 기본 폴더를 뜻함.

 

CLI에서 cd를 쓰듯이  /를 이용해 서버의 폴더에 진입하거나 파일을 요청할 수 있음

 

file://127.0.0.1/home/jeong/ 을 크롬에 입력해보셈!

 

URL은 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄!

 

URL은 scheme, hosts, url-path로 구분할 수 있음

 

  • scheme: 통신 방식(프로토콜)을 결정 일반적인 웹 브라우저에서는 http(s)
  • hosts: 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타냄
  • url-path: 웹 서버에서 지정한 루트 디렉토리부터 시작해 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타냄

 

 

URI는 URL의 기본 3요소에 query, bookmark가 더해진 것!

 

  • query: 웹 서버에 보내는 추가적인 질문

http://www.google.com:80/search?q=JavaScript 칠떄  q 어쩌구 ...

 

브라우저의 검색창을 클릭하면 나타나는 주소가 URI임!

 

URI는 URL의 상위개념임!

 

IP 와 포트

 

창원시청을 찾아가려면 창원시청의 주소를 알아야 함.

 

마찬가지고, 네트워크상에서 가고싶은 PC에 접속하기 위해서는 PC를 가리키는 주소를 알아야 함.

 

이를 IP address 라고 함!

 

IP address(Internet Protocol address, IP 주소)

 

인터넷에 연결된 모든 PC는 IPv4에 따라 주소가 구분됨.

 

예를 들어 nslookup codestates.com  을 터미널에 치면 주소가 나옴!

 

특히 127.0.0.1 은 내가 사용중인 로컬 PC 임!

 

 

 

PORT

 

터미널에서 리액트를 실행하면 127.0.0.1 뒤에 :3000 같은 숫자가 보임

 

이 숫자는 IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미.

 

이때 사용 중인 포트는 중복해서 사용할 수 없고

 

다른 프로그램에서 3000번 포트를 사용 중이라면 다른 포트로 리액트가 실행됨

 

포트 번호는 0 ~ 65,535 (2 ^ 16 = 65536 임) 까지 사용 가능

 

다음의 포트는 익히도록!

  • 22 : SSH
  • 80 : HTTP
  • 443: HTTPS

 

도메인과 DNS

 

Domain name

 

웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소 대신 사용하는 주소가 있음

 

예를들어 우곡로 47-1 번지에 방문하겠다도 좋지만(IP 주소) 너무 불편하니 그냥

 

우리집(도메인)에 가겠다도 근본적으로 동일하지만 더 편한 듯?

 

예를 들어 네이버를 보면 (nslookup naver.com 터미널에 쳐봄)

 

223.130.195.200는 네이버의 IP주소이고 도메인 이름은 naver.com 이다! 

 

223.130.195.200 쳐도 네이버 들어가짐!

 

 

 

DNS(Domain Name System)

 

네트워크 상에 존재하는 모든 PC는 IP 주소가 당연히 있음.

 

그러나 모든 IP 주소가 도메인을 가지는건 아님 (참고로 내 컴퓨터는 localhost이긴 함)

 

도메인 이름은 일정 기간 동안 대여하여 사용하는데...

 

네트워크에는 도메인 이름과 매칭된 IP 주소를 확인하는 작업을 하는 서버가 있음!

 

DNS는 호스트의 도메인 이름을 IP 주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템임!

 

예를 들어 naver.com 을 입력한다면 DNS에서 125.200.222.142를 찾고 IP 주소에 대항하는 웹 서버로 요청을 전달해

 

클라이언트와 서버가 통신할 수 있도록 함.

 

 

 

크롬 브라우저 에러 읽기

 

 

 

"Aw, Snap!" ("앗, 이런!") Chrome 브라우저에서 페이지를 로드하는 데 문제가 발생했습니다.
ERR_NAME_NOT_RESOLVED 호스트 이름(웹 주소)이 존재하지 않습니다.
ERR_INTERNET_DISCONNECTED 사용 중인 기기가 인터넷에 연결되지 않았습니다.
ERR_CONNECTION_TIMED_OUT
ERR_TIMED_OUT
페이지에 연결하는 데 시간이 너무 오래 걸립니다. 인터넷 연결이 너무 느리거나, 웹페이지에 접속한 사용자가 많아서 발생할 수 있습니다.
ERR_CONNECTION_RESET 웹페이지 연결을 방해하는 요소가 어딘가에 발생했습니다.
ERR_NETWORK_CHANGED 웹페이지를 로드하는 중에 기기의 네트워크 연결이 해제되었거나, 새로운 네트워크에 연결되었습니다.
ERR_CONNECTION_REFUSED 웹페이지에서 Chrome 브라우저의 연결을 허용하지 않았습니다.
ERR_CACHE_MISS 웹페이지로부터 이전에 입력한 정보를 다시 한번 제출하도록 요청받았습니다.
ERR_EMPTY_RESPONSE 웹페이지에서 데이터를 전혀 전송하지 않았으며, 데이터를 전송할 서버가 다운되었을 수 있습니다.
ERR_SSL_PROTOCOL_ERROR 페이지에서 전송된 데이터를 Chrome 브라우저가 해석하지 못했습니다.
ERR_BAD_SSL_CLIENT_AUTH_CERT 클라이언트 인증서(은행 또는 회사 내부 웹사이트 등)에 오류가 발생하여 웹페이지에 로그인할 수 없습니다.