HTTP | resource

HTTP의 요청 대상을 리소스(resource) 라고 합니다. 웹서버에서 리소스를 관리합니다. 리소스의 종류는 덱스트, HTML 파일 등의 문서와 JPEG,PNG 등의 이미지파일과 AVI, MP4 등의 동영상 파일등 다양한 종류의 파일을 포함합니다.

MIME 타입

웹에서 파일의 확장자는 의미가 없습니다. 수많은 종류의 HTTP 객체 데이터들에 MIME(Multipurpose Internet Mail Extensions) 타입으로 정의합니다. / 으로 구분하며 주 타입(primary object type) 과 부 타입(specific subtype) 으로 표현됩니다.

1
2
3
4
5
6
7
8
9
10
text/plain
text/html
image/jpeg
image/png
image/gif
audio/mpeg
audio/ogg
video/quicktime
application/vndms-powerpoint
...

URI

URI (Uniform Resource Identifier) 는 통합 자원 식별자로서 인터넷에 있는 리소스를 식별하여 나타내는 수단입니다.

( http는 브라우저에서 유요하고 ftp 의 경우에는 ftp클라이언트를 이용해야 합니다. )

URL

URL (Uniform Resource Locator) 는 URI 와 함께 발전된 개념으로 하위 개념 입니다. 리소스에 대한 구체적인 위치를 표현합니다. 네트워크 상의 자원을 모두 나타낼 수 있습니다.

현재 사용되는 대부분의 URI 는 URL 입니다.

URL 구성

1
(스키마)://(사용자 이름):(비밀번호)@(호스트):(포트)/(경로);(파라미터)?(질의)#(프래그먼트)
  • 스키마(scheme) : 적용할 프로토콜
  • 사용자 이름, 비밀번호(authority) : 몇몇 스키마는 리소스에 접근하기 위해 사용자 이름(비밀번호)을 필요로 함(default => anonymous:브라우저별 비밀번호)
  • 호스트(hostname) : 리소스를 제공하는 서버의 이름이나 IP주소
  • 포트(port) : 서버가 열어 놓는 포트 번호(HTTP의 기본 포트는 80)
  • 경로(url-path) : 리소스가 서버내 어느 곳에 위치 하는지 명시
  • 파라미터(parameter) : 필요한 경우 입력된 파라미터를 나타냅, / 로 이름과 값을 나눠서 표현하며 여러개의 파라미터를 가질 수 있음
  • 질의(query) : 데이터베이스 같은 서비스에 전달할 파라미터를 명시
  • 프래그먼트(fragment) : 리소스에 따라서 작게 나눠질 수 있는 리소스를 세분화하여 명시

URL 경로

Percent Encoding

URL 에서 문제가 될 수 있는 문자를 % 와 2개의 16진수 로 이루어진 문자로 치환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Character Code Character Code
ⓒ %26%23169; t %74
® %26%23174; u %75
™ %E2%84%A2 v %76
backspace %08 w %77
tab %09 x %78
linefeed %0A y %79
creturn %0D z %7A
space %20 { %7B
! %21 | %7C
" %22 } %7D
# %23 ~ %7E
$ %24 ¢ %A2
% %25 £ %A3
& %26 ¥ %A5
' %27 | %A6
( %28 § %A7
) %29 ≪ %AB
* %2A ¬ %AC
+ %2B ? %AD
, %2C º %B0
- %2D ± %B1
. %2E ª %B2
/ %2F , %B4
0 %30 μ %B5
1 %31 ≫ %BB
2 %32 ¼ %BC
3 %33 ½ %BD
4 %34 ¿ %BF
5 %35 A` %C0
6 %36 A´ %C1
7 %37 A^ %C2
8 %38 A~ %C3
9 %39 A¨ %C4
: %3A A° %C5
; %3B Æ %C6
< %3C C¸ %C7
= %3D E` %C8
> %3E E´ %C9
? %3F E^ %CA
@ %40 E¨ %CB
A %41 I` %CC
B %42 I´ %CD
C %43 I^ %CE
D %44 I¨ %CF
E %45 Ð %D0
F %46 N~ %D1
G %47 O` %D2
H %48 O´ %D3
I %49 O^ %D4
J %4A O~ %D5
K %4B O¨ %D6
L %4C Ø %D8
M %4D U` %D9
N %4E U´ %DA
O %4F U^ %DB
P %50 U¨ %DC
Q %51 Y´ %DD
R %52 Þ %DE
S %53 ß %DF
T %54 a` %E0
U %55 a´ %E1
V %56 a^ %E2
W %57 a~ %E3
X %58 a¨ %E4
Y %59 a° %E5
Z %5A æ %E6
[ %5B c¸ %E7
\ %5C e` %E8
] %5D e´ %E9
^ %5E e^ %EA
_ %5F e¨ %EB
` %60 i` %EC
a %61 i´ %ED
b %62 i^ %EE
c %63 i¨ %EF
d %64 ð %F0
e %65 n~ %F1
f %66 o` %F2
g %67 o´ %F3
h %68 o^ %F4
i %69 o~ %F5
j %6A o¨ %F6
k %6B ÷ %F7
l %6C ø %F8
m %6D u` %F9
n %6E u´ %FA
o %6F u^ %FB
p %70 u¨ %FC
q %71 y´ %FD
r %72 þ %FE
s %73 y¨ %FF

참고

제한된 문자

URL 에서는 이미 어던 의미로 쓰이는 걸로 정해진 문자와 사용이 제한되어 있는 문자가 있습니다.

1
_%, /, ., .., #, ?, ;, :, $, +, @, &, =, {}, |, \, ·, ~, [], `, <>, ", 0x00-0x1F, 0x7F, > 0x7F_

스키마(scheme)

URN

URN (Uniform Resource Name) 은 URI 의 하위 개념으로 자 통합 자원 이름입니다. 리소스의 위치와 관계없이 오로지 이름으로 지칭하는 방식으로 아직 널리 채택되지 않았습니다.


가끔 외계어 같은 URL을 보고, 드래그앤 드롭을 하며 이 긴 URL이 무엇을 의미할까라는 생각을 한 적이 있는데요. 이렇게 학습을 하고 나니까 다시 보게 되네요. 이제 URL을 보고 웹페이지의 위치와 속성을 추론하며 학습해야 겠습니다.

http web network