Billy님의 주소창에 www.google.com을 입력했을 때 일어나는 과정 을 참고했습니다. 게시글을 읽으며 아직 단어의 뜻을 잘 몰라 제대로 이해못하는 부분이 있어 데이터를 받아오는 과정까지의 여러 단어들의 뜻을 정리하면서 과정을 이해해보려 합니다.
웹 브라우저는 DNS 서버에 검색하기 전에
캐싱된 DNS 기록들을 먼저 확인합니다.
만약 해당 도메인 이름에 맞는 IP 주소가 존재하면,
DNS 서버에 해당 도메인 이름에 해당하는 IP주소를 요청하지 않고
캐싱된 IP주소를 바로 반환합니다.
일치하는 IP주소가 존재하지 않는다면,
다음 과정인 DNS 서버 요청으로 넘어갑니다.
url은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약입니다. 위치를 지정하는 웹 리소스에 대한 참조이며, 웹 페이지를 찾기위한 주소를 말합니다. url은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있는데, 그 주소에 접속하려면 해당 url에 맞는 프로토콜을 알고 맞게 접속해야 합니다.
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
http
는 프로토콜(규약) 입니다. (프로토콜은 컴퓨터 내부, 컴퓨터 사이에서 원활한 통신을 위해 지키기로 약속한 데이터의 교환 방식의 규칙 체계입니다.) URL의 첫 파트는 브라우저가 어떤 규약을 사용해야 하는 지를 나타냅니다. 대부분의 웹사이트는 HTTP 프로토콜, HTTP 프로토콜의의 보안 버전(HTTPS)을 사용합니다.
www.example.com
은 도메인 이름입니다. 도메인은 인터넷에 연결된 컴퓨터를 식별하고 어떤 웹 서버가 요구되는지를 가리킵니다. 넓은 의미로는 네트워크 상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미합니다. URL을 도메인과 동일하게 착각할 수도 있는데 도메인이 URL의 일부를 구성합니다.
:80
은 포트입니다. 포트 번호는 컴퓨터 안에서 작동하는 어플리케이션을 식별하기 위해 사용하는 숫자입니다. 0~65535 사이의 번호를 사용하며, 표준 HTTP 포트 (HTTP를 위한 80, HTTPS를 위한 443)를 사용한다면 보통 생략하고, 그렇지 않다면 필수로 기입해야합니다.
/path/to/myfile.html
은 웹 서버에서 자원에 대한 경로입니다. 초기에는 웹 서버상에서 물리적인 파일 위치를 나타냈지만, 최근에는 웹 서버에서 추상화하여 보여줍니다. (물리적 경로를 나타낼 때도 있습니다.)
?key1=value1&key2=value2
는 웹 서버에 제공하는 추가 파라미터입니다. 이 파라미터들은 & 기호로 구분된 key / value 으로 짝을 이룬 리스트입니다. 웹 서버는 자원을 반환하기 전에 이러한 파라미터들을 추가적인 작업을 위해 사용할 수 있습니다.
#SomewhereInTheDocument
는 anchor입니다. 앵커는 페이지가 긴 웹 문서에서 특정 요소(링크, 이미지 등)를 클릭하면 지정하는 해당 위치로 이동하는 기능을 말합니다. 문서 내부에서의 일종의 "bookmark"라고 할 수 있습니다.
도메인 네임 시스템은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나, 그 반대의 변환을 수행하기 위해 개발되었습니다. 특정 컴퓨터의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 줍니다.
인터넷의 DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 합니다. DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어합니다. 이 요청을 쿼리라고 부릅니다.
매핑이란, 하나의 값을 다른 값으로 대응시키는 것을 말합니다. 매핑의 장점으로는 URL에 노출되는 부분을 변경함으로써 보안성을 높일 수 있고, 그로 인해 주소가 간결해지는 점입니다.
ex)
http:localhost:8888/khacademyjavawebclassmapping
http:localhost:8888/webmapping
웹 캐시 또는 HTTP 캐시는 서버 지연을 줄이기 위해 웹 페이지, 이미지, 기타 유형의 웹 멀티미디어 등의 웹 문서들을 임시 저장하기 위한 정보기술입니다. 사용자(client)가 웹 사이트(server)에 접속할 때, 정적 컨텐츠(이미지, JS, CSS 등)를 특정 위치에 저장하여, 웹 사이트 서버에 해당 컨텐츠를 매번 요청하는 것이 아니라 특정 위치에서 불러옴으로써 사이트 응답시간을 줄이고, 서버 트래픽 감소 효과를 볼 수 있습니다.
컴퓨팅에서 캐시는 일반적으로 일시적인 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층입니다. 따라서 이후에 해당 데이터에 대한 요청이 있을 경우 데이터의 기본 스토리지 위치에 액세스할 때보다 더 빠르게 요청을 처리할 수 있습니다. 캐싱을 사용하면 이전에 검색하거나 계산한 데이터를 효율적으로 재사용할 수 있습니다. AWS에서 설명하는 캐싱이란
캐싱은 간략히 설명하면 캐시라는 더 빠른 메모리 영역으로 데이터를 가져와서 접근하는 방식입니다. 기본 데이터 저장소 앞에 복사본을 저장하기 때문에 일반적으로 기본 저장소보다 사용하는 클라이언트에게 더 가깝습니다.