HTTP TIL 02
2021년 7월 29일에 작성된 문서 2번 입니다.
http의 배운 내용을 정리했습니다.
URL과 URI
- 브라우저의 주소창의 URL: 서버가 제공되는 환경에 존재하는 파일 위치.
https://codestates.com:443/
사이트에 접속하게 되면, codestates.com 주소가 가리키는 서버의 기본 폴더를 뜻합니다. - 슬래시(
/
)를 이용해 서버의 폴더에 진입하거나 파일을 요청할 수 있다.
macOS: file://127.0.0.1/Users/username/Desktop/
//크롬 브라우저에 입력하면, 브라우저로 PC의 폴더와 파일을 탐색할 수 있다.
- URL, URI의 구성
URL (Uniform Resource Locator)
- 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보
- URL은 scheme, hosts, url-path로 구분.
- scheme(제일 먼저 작성): 통신 방식(프로토콜)을 결정.
- 일반 웹 브라우저는 http(s) 를 사용.
- hosts: 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타냄.
- url-path: 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.
- scheme(제일 먼저 작성): 통신 방식(프로토콜)을 결정.
URI (Uniform Resource Identifier)
- URL의 기본 요소인 scheme, hosts, url-path에 더해 query, bookmark를 포함
- query: 웹 서버에 보내는 추가적인 질문.
브라우저의 검색창을 클릭하면 나타나는 주소가 URI입니다. URI는 URL을 포함하는 상위개념입니다. 따라서, 'URL은 URI다.' 는 참이고, 'URI는 URL이다.' 는 거짓입니다.
부분 | 명칭 | 설명 |
---|---|---|
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 | 웹 서버에 전달하는 추가 질문 |
IP와 포트
IP address
- IP(Internet Protocol) : 인터넷 주소체계
- 인터넷에 연결된 모든 PC는 IP 주소 따라 네 덩이의 숫자로 구분. (IPv4)
- IPv4(Internet Protocol version 4) : IP 주소체계의 네 번째 버전
- 최근에는 IPv6를 사용한다.
터미널에서 간단한 명령어로 자주 이용하는 코드스테이츠의 IPv4 주소를 확인할 수 있습니다. 터미널을 열고,
nslookup codestates.com
을 입력하면, 다음과 같은 화면을 만날 수 있습니다.
- 터미널에서
nslookup
을 이용해 IP 주소를 확인할 수 있다.
- IPv4는 각 덩어리마다 0부터 255까지 나타낼 수 있다.
- 주요 IP주소:
localhost
,127.0.0.1
: 현재 사용 중인 로컬 PC0.0.0.0
,255.255.255.255
: (broadcast address) 로컬 네트워크에 접속된 모든 장치와 소통하는 주소.- 서버에서 접근 가능 IP 주소를 broadcast address 로 지정하면, 모든 기기에서 서버에 접근할 수 있다.
PORT
IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)
- 포트 번호는 0~ 65,535 까지 사용할 수 있다.
- 그 중에서 0 ~ 1024번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다.
- 반드시 알아야 할 포트 번호
- 22 : SSH
- 80 : HTTP
- 443: HTTPS
이미 정해진 포트 번호라도, 필요에 따라 자유롭게 사용할 수 있습니다. 잘 알려진 포트의 경우 URI 등에 명시하지 않지만, 그 외의 잘 알려지지 않은 포트(
:3000
과 같은 임시 포트)는 반드시 포함해야 합니다.
도메인과 DNS
Domain name
웹 브라우저로 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소
- IP 주소가 지번 또는 도로명 주소라면, 도메인 이름은 해당 주소에 위치한 상호로 볼 수 있다.
다음과 같이, 터미널에서 도메인 이름을 통해 IP 주소를 확인하는 명령어
nslookup
으로codestates.com
의 IP 주소를 확인할 수 있습니다.
-
IP 주소:
3.34.153.168
-
도메인 이름:
codestates.com
입니다. -
주소창에 IP 주소(
3.34.153.168
)를 입력하면,codestates.com
로 이동할 수 있다.
DNS (Domain Name System)
호스트의 도메인 이름을 IP 주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템
만약 브라우저의 검색창에 naver.com을 입력한다면, 이 요청은 DNS에서 IP 주소(
125.209.222.142
)를 찾습니다. 그리고 이 IP 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있도록 합니다.
크롬 브라우저 에러 읽기
Aw, Snap! (크롬 브라우저의 에러 메시지)
다음 에러 메시지가 나타난다면, 페이지를 여는 중에 문제가 발생했다는 뜻입니다.
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 | 클라이언트 인증서(은행 또는 회사 내부 웹사이트 등)에 오류가 발생하여 웹페이지에 로그인할 수 없습니다. |
- 전체 에러 메시지 목록은 크롬 브라우저의 검색창에
chrome://network-errors/
를 입력하여 확인할 수 있다. - 위의 에러 메시지를 만나면, 다음과 같은 문제가 발생할 수 있다.
- 웹페이지에 연결할 수 없습니다.
- 웹페이지가 열리지 않습니다.
- HTTPS가 적용된 웹페이지가 열리지 않습니다.
- 사진이 로드되지 않습니다.
- 새 탭이 로드되지 않습니다.
Written with StackEdit.
Author And Source
이 문제에 관하여(HTTP TIL 02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@heewonkim-dev/HTTP-TIL-02저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)