컴공생의 다이어리
URL 문법 본문
URL 문법
URL 문법의 기본적인 형태는 아래와 같이 9개의 컴포넌트로 구성된다. 스킴(프로토콜)에 따라 세부적인 형태는 달라지며, 모든 컴포넌트를 가지는 URL은 거의 존재하지 않는다. 주로 스킴, 호스트, 경로가 중요한 편이다.
<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래그먼트>
스킴 : 사용할 프로토콜
- 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보
- 어떤 프로토콜을 사용하여 리소스를 요청해야 하는지
- 스킴 컴포넌트는 알파벳으로 시작해야 하고 URL의 나머지 부분들과 ‘:’로 구분
- 스킴명은 대소문자를 구분하지 X
- HTTP://github.com == http://github.com
호스트와 포트
- 리소스를 호스팅하고 있는 장비와 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 알려주는 역할
- 호스트 컴포넌트 : 접근하려고 하는 리소스를 가지고 있는 인터넷 상의 호스트 장비를 가리킴
- 호스트 명이나 IP주소로 제공
- 포트 컴포넌트 : 서버가 열어 놓은 네트워크 포트를 가리킴
- 내부적으로 TCP 프로토콜을 사용하는 HTTP는 기본 포트로 80을 사용
사용자 이름과 비밀번호
- 데이터 접근을 위해 사용자 이름과 비밀번호를 요구하는 경우 사용됨
- FTP 서버가 많이 사용함
- 사용자 이름과 비밀번호를 기술하지 않고 FTP URL에 접근하면, 기본 사용자 이름 값으로 'anonymous' 비밀번호는 브라우저마다 가지고 있는 기본값을 사용
경로
- 리소스가 서버의 어디에 있는지 알려줌
- 서버가 리소스의 위치를 찾는데 사용하는 정보
- 유닉스 파일 시스템의 파일 경로와 유사
- HTTP URL에서 경로 컴포넌트는 ‘/’ 문자를 기준으로 경로 조각으로 나뉨
- 각 경로 조각은 자체만의 파라미터 컴포넌트를 가질 수 있음
파라미터
- 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용
- 이름/값 쌍의 리스트로 URL 나머지 부분들로부터 ';' 문자로 구분하여 URL에 기술
- http://www.google.com/image;name=cute
- 이름은 ‘name’이고 값은 ‘cute’인 name=cute라는 하나의 파라미터 전달 - http://www.google.com/hammers;sale=false/index.html;graphics=true
- hammers 경로 조각은 값이 false인 sale 파라미터를 가짐
- index.html 경로 조각은 값이 true인 graphics라는 파라미터를 가짐
- http://www.google.com/image;name=cute
질의 문자열
- 데이터베이스 같은 서비스들은 요청받을 리소스 형식의 범위를 좁히기 위해서 질문이나 질의를 받을 수 있음
- 게이트웨이를 가리키는 URL의 경로 컴포넌트와 함께 전달
- 게이트웨이는 다른 애플리케이션에 접근하려고 할 때 거치는 통로라고 할 수 있음
- 많은 게이트웨이가 '&'로 나뉘는 'key=value' 형식의 질의 문자열을 원함
- https://www.google.com/search?q=질의&source=lnms
프래그먼트
- 리소스 내의 특정 부분(조각)을 가리킴
- 일반적으로 HTTP 서버는 객체 일부가 아닌 전체만 다룸
- 따라서, 클라이언트는 서버에 프래그먼트를 전달 X
- 브라우저가 서버로부터 전체 리소스를 내려받은 후, 프래그먼트를 사용하여 보고자 하는 리소스의 일부를 보여줌
- https://github.com/CodeDiary18/CodeDiary18#-my-github-stats-
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788966261208
https://www.betterweb.or.kr/blog/url%EC%9D%B4%EB%9E%80/
https://yurimkoo.github.io/http/2019/08/08/http-the-definitive-guide-1-2.html
https://watrv41.gitbook.io/devbook/web/http/2-url
728x90
'Development > Network & Web' 카테고리의 다른 글
개발자 도구(F12)로 동영상 재생속도 변경하기 (0) | 2022.07.22 |
---|---|
[Network] LAN, WAN, MAN (0) | 2022.05.23 |
URI, URL, URN이란? (0) | 2022.02.23 |
[JSTL] date format(날짜 형식) (0) | 2022.01.30 |
[js] location.href와 location.replace (0) | 2022.01.25 |
Comments