728x90
반응형
개념
- URL(Uniform Resource Locator)
- 통합 자원 지시자로 인터넷의 리소를 가리키는 표준 명칭으로 서버의 자원을 요청할 때 사용된다.
- 인터넷 상읠 모든 리소를 요청할 수 있으며, 우리가 흔히 알고 있는 HTTP 뿐만 아니라 FTP, SMTP 관련된 자원 요청도 가능하다.
동작 원리
- 먼저 이렇게 클라이언트 측에서 url 요청을 하게 된다.
- 웹 서버 측에서는 파일 입출력을 통해 파일을 입력 받게 된다.
- 파일 입력을 이용해서 실제 서버 내의 파일 시스템에 있는 웹 루트 하위의 자원을 불러낸다.
- 불러낸 자원을 웹 서버의 응답 로직에 따라 처리한다.
- 자원을 부른 다음에 실제 바디값 응답 메세지를 작성한 다음에 이 바디에 자원을 실어서 클라이언트 측으로 전송하게 된다.
URL 구조 분석
- http://www.zoohwan99.co.kr/images/profile.png
- http : 스키마 부분으로 사용하게 될 프로토콜이 명시 되어 있는 부분으로 위의 URL은 'http'프로토콜을 통해 자원을 요청한다는 것을 알 수 있다. 그 외에도 https, ftp, file 등이 있다.
- www.zoohwan99.co.kr : 서버 주소인 호스트 부분으로 자원을 가진 컴퓨터의 위치가 명시 되어 있다. 웹 브라우저는 이를 참조하여 IP주소를 알아낸다. 뒤에 포트번호가 원래는 표기가 되어 있어야 하나, HTTP는 기본 80포트를 사용하며 생략이 가능하다. 따라서 생략이 되어 있는 경우는 80포트를 사용한다고 볼 수 있다.
- images : 자원이 존재하는 디렉토리이다. 이보다 상위 디렉토리에 자원이 존재할 경우 디렉토리는 표기되지 않는다.
- profile.png : 요청할 자원의 이름이다.
- 만약 자원을 지정하지 않았을 경우 서버의 어떤 자원이 호출될까?
- 이럴 경우에는 일반적으로 서버에 설정해놓은 기본 페이지라는 것이 있다. 예를 들어 index.xx, default.xx가 있다.
- 보통 iis의 경우 dafault 페이도 호출된다.(설정 파일을 보게 되면 이러한 것들이 모두 명시되어 있다.)
- 결론 : 도메인만 나오고 자원이 없을 경우에는 기본 페이지를 호출하는데, 이 기본 페이지는 기본적으로 index 페이지가 있고 IS 페이지는 default 페이지가 있다.
URL 예약 문자
- URL 상에서 특정 기능을 하는 문자로 웹 클라이언트와 서버 간에 서로 예약이 되어 있는 문자이다.
문자 | 인코딩 |
? | 파라미터가 시작된다는 것을 알려줌 |
= | 파라미터 값 대입 |
& | 다음 파라미터 식별자 |
+ | 공백 |
! * ' ( ) : ; @ $ , / # [ ] | 그 외 문자... |
- EX) http://www.zoohwan99.co.kr/board.do?roleType=guest&id=1234&sort=desc
- 전달 되는 파라미터
- roleType=guest
- id=1234
- sort=desc
- 예를 들어 패스워드를 입력하는 란에 '공백, &, #'의 예약 문자가 패스워드란 란에 포함되어 있으면 어떻게 전송이 될까?
- 패스워드란 'qwer1234 &#'이라고 들어오게 된다면 'userpw=qwer1234 &#'로 받아들여지지 않는다.
- 실제로는 'userpw=qwer1234'라고만 받아들여지게 된다.
- 이러한 것을 해결해주기 위해 URL 인코딩이라는 것을 사용하게 된다.
URL 인코딩
- URL 상에서 문자를 표현하는 방법으로 데이터 전송 상에 손실을 막기 위해서 인코딩을 사용한다.
- 또한, 예약 문자를 단순 데이터로 전송이 될 수 있도록 인코딩을 한다.
- 웹 브라우저를 사용할 경우, 브라우저에서 URL 인코딩은 자동으로 해준다.
문자 | 인코딩 |
& | %26 |
% | %25 |
+ | %2B |
공백 | %20 |
= | %3D |
# | %23 |
' | %27 |
? | %3F |
728x90
반응형
'Network' 카테고리의 다른 글
HTTP GET / POST (1) | 2024.09.08 |
---|---|
웹의 핵심 기술 HTTP 프로토콜 (1) | 2024.09.08 |
웹을 구성하는 3대 요소 (0) | 2024.09.07 |
웹의 탄생, 그리고 발전 (15) | 2024.09.07 |
HTTP 분석 (0) | 2024.09.03 |