학습 목표
- 브라우저의 작동 원리를 이해할 수 있다.
- 보이지 않는 곳의 통신을 이해할 수 있다.
- URL과 URI의 차이를 이해할 수 있다.
- IP 주소와 PORT에 대해 이해할 수 있다.
- DNS와 IP 주소의 관계를 설명할 수 있다.
- 크롬 브라우저의 에러 메시지를 통해 문제를 파악할 수 있다.
https://abcdefg.com:443
사이트에 접속하게 되면, abcdefg.com 주소가 가리키는 기본 폴더를 뜻함URL
URI
부분 | 명칭 | 설명 |
---|---|---|
file://, http://, https:// | scheme | 통신 프로토콜 |
127.0.0.1, www.google.com | hosts | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP |
:80, :443, :3000 | port | 웹 서버에 접속하기 위한 통로 |
/search, /Users/username/Desktop | url-path | 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로 |
q=JavaScript | query | 웹 서버에 전달하는 추가 질문 |
- 127.0.0.1 은 로컬 PC
- port는 서버로 진입할 수 있는 통로
IP address
네트워크에 연결된 특정 PC의 주소를 나타내는 체계
인터넷에 연결된 모든 PC는 IP 주소체계를 따라 네 덩이의 숫자로 구분(IPv4; IP 주소체계의 네번째 버전)
IPv4
반드시 기억해야하는 IP 주소
localhost
, 127.0.0.1
: 현재 사용 중인 로컬 PCIPv6
PORT
IP 주소에 진입할 수 있는 정해진 통로
이미 사용 중인 포트는 중복해서 사용할 수 없음
포트 번호는 0~65535까지 사용할 수 있음
반드시 알아야 할 잘 알려진 포트 번호
이미 정해진 포트 번호라도, 필요에 따라 자유롭게 사용할 수 있음
HTTP(:80), HTTPS(:443)과 같이 잘 알려진 포트의 경우, https://abcdefg.com:443
이 아닌 https://abcdefg.com
처럼 포트 번호를 URI에 생략할 수 있지만, 그 외의 잘 알려지지 않은 포트(3000과 같은 임시 포트)는 반드시 포트 번호를 포함해야 함
Domain Name
google.com
DNS
💡) DNS 더 알아보기
DNS는 도메인 이름을 IP 주소로 매핑해주는 전화번호부 역할을 한다. 사용자가 웹 브라우저에 도메인 이름을 입력하면, 브라우저는 해당 도메인 이름에 대한 IP 주소를 알아내기 위해 DNS 서버에 요청을 보낸다.
DNS에는 여러 계층으로 구성된 계층적인 구조가 있다. 가장 상위에는 루트 DNS 서버가 있으며, 이 서버는 전 세계적으로 분산되어 있다. 그 아래에는 최상위 도메인(TLD) DNS 서버가 있으며, 이 서버는 도메인의 최상위 수준을 나타내는 식별자(예: .com, .net, .org 등)를 관리한다. 그리고 그 아래에는 도메인을 소유한 조직이나 호스팅 서비스 제공업체 등이 자체적으로 운영하는 DNS 서버가 있다.
DNS는 반복적인 방식으로 동작한다. 브라우저가 DNS 서버에 도메인 이름을 요청하면, 루트 DNS 서버에서는 해당 도메인 이름의 최상위 도메인(TLD) DNS 서버를 알려준다. 그 다음, 브라우저는 TLD DNS 서버에 다시 요청을 보내 해당 도메인을 관리하는 네임 서버를 알아내고, 최종적으로 도메인 이름에 대한 IP 주소를 받아온다. 이후에는 브라우저가 해당 IP 주소로 통신을 진행하고 웹 페이지를 불러온다.
Chrome 브라우저를 사용하다 보면 누구나 한 번쯤 에러 메시지를 만날 수 있음
Chrome 브라우저에서 에러 메시지를 만났을 때 어떤 에러인지 알아야 차분히 해결할 수 있음
Error Message | Description |
---|---|
"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 | 클라이언트 인증서(은행 또는 회사 내부 웹사이트 등)에 오류가 발생하여 웹페이지에 로그인할 수 없습니다. |