URL 개념
URL(Uniform Resource Locator) = 통합 자원 지시자
인터넷의 리소스를 가리키는 표준 명칭으로 서버의 자원을 요청할 때 사용된다.
URL로 인터넷 상의 모든 리소스를 요청할 수 있으며, 우리가 흔히 알고 있는 HTTP 뿐만 아니라 FTP, SMTP 관련된 자원 요청도 가능하다.
동작 원리(1)
URL로 자원 요청 시 동작 원리는 아래와 같다.
1. 클라이언트에서 URL로 자원 요청 - HTTP Request
2. 웹 서버에서 URL에 해당하는 자원을 Body 에 담아서 반환 - HTTP Response
URL 구조 분석
[01] 스키마
- 사용하게 될 프로토콜이 명시되어 있는 부분으로 위의 URL은 http 프로토콜을 통해 자원을 요청한다. 그 외에도 https, ftp, file 등이 있다. 해당 부분은 알파벳으로 시작해야 되며 대소문자를 가리지 않는다. 프로토콜 뒤에 콜론 ':'이 붙는다.
[02] 호스트(서버 주소)
- 자원을 가진 컴퓨터의 위치가 명시되어 있다. 웹 브라우저에서는 이를 참조하여 IP주소를 알아낸다. 뒤에 포트번호가 원래는 표기가 되어 있어야하나, HTTP는 기본 80포트를 사용하며 생략이 가능하다. 따라서 생략이 되어 있는 경우는 80포트를 사용한다고 볼 수 있다. 80포트가 아닌 다른 포트번호를 사용할 경우 표시를 해줘야 한다.(ex. 8080)
[03] 자원이 존재하는 디렉터리
- 이보다 상위 디렉터리에 자원이 존재할 경우 디렉터리는 표기되지 않는다.
[04] 요청할 자원의 이름
동작 원리(2)
자원을 지정하지 않을 경우 서버의 어떤 자원이 호출될까?
네이버 접속 시 naver.com으로 요청하게 된다. 이때 네이버의 웹 서버 or WAS에서는 사전에 설정해둔 기본 페이지(index 페이지)를 반환하게 된다. IIS의 경우 default 페이지도 호출된다. - 설정을 통해서 변경 가능하다.
도메인만 명시되어 있고, 자원은 명시되지 않는 경우 기본 페이지(index 페이지)를 호출한다.
URL 예약 문자(메타 문자)
URL 상에서 특정 기능을 하는 문자로 웹 클라이언트와 서버 간에 서로 예약이 되어 있는 문자이다.
문자 | 인코딩 |
? | 파라미터가 시작된다는 것을 알려줌 (자원과 사용자 입력값 구분의 기준) |
= | 파라미터 값 대입 |
& | 다음 파라미터 식별자 |
+ | 공백 |
# | 뒤에 오는 모든 것 제거 |
! * ( ) ; : @ $ , / [ ] | 그 외 문자... |
URL 예시
http://www.example.com/board.do?val1=test&val2=test+is
URL 구조 분석
데이터에 URL 예약 문자가 들어갈 경우 어떻게 전송될까?!
그림6 처럼 전송되지 않는다. cre 뒤에 &#는 데이터로 인식하지 않는다.
URL 인코딩
URL 상에서 문자를 표현하는 방법으로 데이터 전송 상에 손실을 막기 위해서 인코딩을 사용한다.
또한, 예약 문자를 단순 데이터로 전송이 될 수 있도록 인코딩을 한다.
웹 브라우저를 사용할 경우 브라우저에서 URL 인코딩은 자동으로 해준다.
※아래의 인코딩 문자는 외워 두는 것이 좋다.
문자 | 인코딩 |
& | %26 |
% | %25 |
+ | %2B |
공백 | %20 |
= | %3D |
# | %23 |
' | %27 |
? | %3F |
웹 구조에서 살펴본 URL 인코딩
1. 사용자는 아이디와 패스워드를 입력하여 로그인 한다.
2. 웹 브라우저는 아이디와 패스워드 값 내에 있는 URL 예약 문자를 인코딩하여 서버로 전송한다. - HTTP Request
참고
https://www.inflearn.com/course/%EC%9B%B9-%EA%B8%B0%EC%88%A0-%EA%B8%B0%EC%B4%88
'웹 해킹 > 웹 기초 지식' 카테고리의 다른 글
쿠키와 세션 (1) | 2024.11.09 |
---|---|
웹의 핵심 기술 HTTP 프로토콜 (0) | 2024.11.08 |
XAMPP 설치 및 URL 예약문자, URL 인코딩 실습 (3) | 2024.11.07 |
웹을 구성하는 3대 요소 (0) | 2024.11.05 |
웹의 탄생 및 발전 (6) | 2024.11.04 |