yunajoe 2022. 12. 18. 20:19

URL이란?!

- uniform resource locator의 줄임말로써, 웹이 존재하는 특정 데이터를 나타내는 문자열 

 

 

URL구조

 


1.Scheme =>  프로토콜(protocol) 부분을 가리킨다. 프로토콜이란 네트워크상에서 서버에게 데이터를 얻거나 전달할때(통신할때) 지켜야할 규약

 

2. Authority => 도메인(Domain Name)과 포트(Port)를 포함한다. 도메인네임이란 요청을 받는 단 하나의 서버를 지칭한다(IP address)와 같은 말이다. 포트(Port)란 요청받은 서버에서 자원(resource)에 접근할 수 있는 통로(Channel, gate)를 가리킨다. 대표적으로 HTTP는 80번 port, HTTPS는 443 port이다 


3. 경로(Path) => 서버에 있는 데이터 중 원하는 데이터에 접근할 수 있는 길


4. 쿼리(Query) => 데이터에 관한 세부적인 요구사항.key와 value로 구성되어 있고 &로 여러개의 조건을 쓸 수 있다

 

5. 앵거태그(Ancher) => 특정 자원에 대한 bookmark라 할 수 있다

 

 

URL작동방식

www.naver.com나 www.google.com 처럼, URL에서의 호스트(host) 부분까지만 입력하고, 어떤 서비스의 메인 페이지로 진입
- 마우스로 화면에 있는 이미지나 버튼 등을 클릭을 하면은 새로운 URL로 자동으로 이동됨
(화면에서 클릭하는 버튼 등에 어느 URL로 새로운 리퀘스트를 보낼지, HTML 코드 또는 Javascript 코드로 다 작성이 되어있기 때문)

-  a 태그의 href 속성에 적힌 URL 주소로 웹 브라우저가 알아서 리퀘스트를 보내서 리스폰스를 받아 새로운 웹 페이지를 로드됨

- 웹 페이지에 미리 모든 것이 세팅되어 있기 때문에 해당 서비스의 서버에서 요구하는 path의 형식, query의 형식을 알 필없음

- 이런 식으로 웹 페이지에 미리 모든 것이 세팅되어 있기 때문에 여러분은 해당 서비스의 서버에서 요구하는 path의 형식, query의 형식을 알 필요가 없음

<a href="https://www.nazer.com/blogs/codeitOfficial/120"...>...</a>
<a href="/codeitCommunity/threads/731" ...>...</a>

 

웹 브라우저가 요청(request)를 보내면 무슨 일이 일어날까?

 

1. https://www.abcshoppingmall.com/womem/accessory?color=blue&size=m 엔터를 쳤다고 가정

 

2. 웹 브라우저는 URL에서 호스트(www.abcshoppingmall.com)를 보고 어느 서버와 통신을 해야 할지 찾는다. 

www.abcshoopingmall.com 라는 것을 domainName이라 한다. 특정 서버를, 외우기 어려운 IP 주소(ex 127.0.0.1..)가 아니라 외우기 쉬운 문자열로 나타낸 것이 바로 도메인 네임


3. 브라우저는  DNS(Domain Name Resolution) 작업을 통해 www.abcshoppingmall.com만을 보고도 해당 서버를 찾을 수 있음

 

4. 어떤 서버와 통신해야 하는지를 식별하고 나면, 웹 브라우저는 해당 서버로 리퀘스트보낸다
- 이떄 URL에서 path 이후의 부분들(/womem/accessory?color=blue&size=m) 리퀘스트에 담아서 보낸다

 

5. 리퀘스트를 받은 서버는 리퀘스트에 담긴 path 이후의 부분들을 보고, 그것이 의미하는 데이터를 찾고, 찾은 결과를 리스폰스에 담아서 보낸다.

 

6. 그럼 웹 브라우저는 받은 리스폰스의 내용(HTML, JS)을 해석하여 사용자에게 보여준다.