Network

자원을 지정하는 URL

Z00_HWAN_99 2024. 9. 7. 17:14
728x90
반응형

개념

  • URL(Uniform Resource Locator)
  • 통합 자원 지시자로 인터넷의 리소를 가리키는 표준 명칭으로 서버의 자원을 요청할 때 사용된다.
  • 인터넷 상읠 모든 리소를 요청할 수 있으며, 우리가 흔히 알고 있는 HTTP 뿐만 아니라 FTP, SMTP 관련된 자원 요청도 가능하다.

동작 원리

  1. 먼저 이렇게 클라이언트 측에서 url 요청을 하게 된다.
  2. 웹 서버 측에서는 파일 입출력을 통해 파일을 입력 받게 된다.
  3. 파일 입력을 이용해서 실제 서버 내의 파일 시스템에 있는 웹 루트 하위의 자원을 불러낸다.
  4. 불러낸 자원을 웹 서버의 응답 로직에 따라 처리한다.
  5. 자원을 부른 다음에 실제 바디값 응답 메세지를 작성한 다음에 이 바디에 자원을 실어서 클라이언트 측으로 전송하게 된다.

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