인터넷에 있는 자원을 나타내는 유일한 주소.
인터넷에 존재하는 각종 정보들의 유일한 이름이나 위치를 표시하는 식별자이다.
웹주소이다.
컴퓨터 네트워크 상에서 리소스가 어디있는지 알려주기 위한 규약이다.
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
스킴 ://사용자정보@host:port/path(경로)?query#fragment
ex) : https://ksmart40id@www.ksmart.or.kr:443/forum/questions?course=sw40&order=name#search
scheme/스킴 : 사용할 프로토콜, 리소스에 어떻게 요청 및 접근할 것인지를 명시한다. 웹에서 주로 HTTP프로토콜을 사용한다.
user, password/사용자정보 : 서버에 접근하기 위한 사용자의 이름, 비밀번호
host : 도메인 혹은 IP -> ksmart.or.kr
접속하고 싶은 서버 컴퓨터를 의미한다.
ex) google.com (도메인)
path : 서버에 제공하는 자원의 경로
요청하는 경로를 MVC패턴에서 숨길 수 있다.
query : 클라이언트가 서버에 요청 시 전송할 데이터 (KEY+VALUE)
fragment : 서브리소스에 대한 방향을 제공하는 식별자이다.
*https 기본포트는 443, http는 80, mysql은 3306이다.
-> 포트는 프로그램이 통신할 수 있게 하는 항구역할이다. (1개만 가질 수 있음) 보안이 필요하다면? 포트를 막으면 된다.
*forum ~이후는 경로이다.
*? 가 붙은 이 뒷 부분은 get방식이며 주소에 실어서 보내는 방법이다. (다른 jsp파일에 데이터를 보낸다.) 다른말로 query parameter 라고도 한다.
쿼리는 요청할 시 (키=값) 최종적인 값을 바인딩 받는다.
쿼리 get뱡식으로 보낼 때 쿼리스트링을 이용한다.
여러개를 보낼 때 (키=값&키=값)
또, post 방식은 header 안에 정보를 실어서 보낸다.
*fragment는 요소에 대한 id이다.
그 위치로 찾아가준다.
#id 는 페이지 안에 있는 식별자를 의미한다.
ex)
#footer
href="id"
URI , URL을 많이 사용하고 URN은 잘 사용하지 않는다.
전체가 URI라 봤을 때,
경로에 해당하는 위치까지는 URl이라 말하고,
프로토콜을 제외한 나머지는 URN이라고 한다.
URN : 특정정보에 이름을 부여하는 방법
URI
https://news.naver.com/main/read.navermode=LSD&mid=shm&sid1=101&oid=421&aid=0005584531
URL
https://news.naver.com/main/read.naver
URN
news.naver.com/main/read.navermode=LSD&mid=shm&sid1=101&oid=421&aid=0005584532