URL ENCODING ?
간단히 말하자면, URL에서 사용할 수 없는 문자들(예약문자, 특수문자, ..)을 사용할 수 있도록 변환하는 과정입니다.
RFC3986에 따라 정해진 몇개의 문자들을 제외하고는 octet(8bit)단위로 묶어서 16진수 값으로 인코딩한 후 %를 붙여야 합니다.
URL ENCODING이라는 용어는, URL뿐만 아니라 URI, URN에서도 사용하기 때문에 퍼센트 인코딩(Percent Encoding)이라는 용어를 사용하는 것이 더 적합하다고 볼 수 있습니다.
URL에서 사용할 수 없는 문자
URL에서 사용할 수 없는 문자들은 인코딩과정을 거처야 합니다.
RFC3986에서는 비 ASCII(non-ASCII) 문자에 대한 인코딩 테이블을 제공하지 않기 때문에, ASCII 코드에 정의되지 않은 문자들은 반드시 Percent-encoding 되어야 합니다.
URL에서 사용할 수 있는 문자
URL에서 사용할 수 있는 문자는 예약(Reserved)문자와 비예약(Unreserved)문자로 구분되어 집니다.
예약문자는 URL에서 문법적 의미를 가지고 있기 때문에, 그 의미로 사용할 것이 아니라면 반드시 인코딩을 해야 합니다.
!
*
'
(
)
;
:
@
&
=
+
$
,
/
?
#
[
]
비예약문자는 퍼센트 인코딩을 하지않는것을 권장합니다.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
0
1
2
3
4
5
6
7
8
9
-
_
.
~
HOW TO
Percent-encoding을 위해서는 octet으로 인코딩한 후 %를 붙여주면 됩니다.
예를들어, '링크허브' 문자를 Percent-encoding시키면 다음과 같은 과정을 거치게 됩니다.
링크허브 → 0xEB 0xA7 0x81 0xED 0x81 0xAC 0xED 0x97 0x88 0xEB 0xB8 0x8C → %EB%A7%81%ED%81%AC%ED%97%88%EB%B8%8C
URL 디코딩, 인코딩을 하시려면 아래 사이트를 이용해 주시면 됩니다.
Example에서 살펴보기
팝빌 예제 SDK중에서 JSP소스를 살펴보면 아래와 같이 선언되어 있는 것을 확인하실 수 있습니다.
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | cs |
JSP는 서버에서 JAVA로 변환이 된 후에 결과(HTML)을 클라이언트에게 전송하고,
클라이언트는 HTML만을 해석하여 사용자에게 제공하게 됩니다.
HTML의 <meta>태그가 브라우저를 위한 설정값이라면, 위의 contentType과 pageEncoding은 서버를 위한 설정입니다.
contentType은 서버에서 생성될 HTML의 캐릭터셋에 대한 정보이고, pageEncoding은 JSP내의 JAVA코드에 대한 캐릭터셋 정보입니다.
예~전에는 두가지 다른 캐릭터셋으로 정의를 했다고 하는데, 요새는 UTF-8로 통일시키는것이 일반적입니다.
'현대리가 생각하는 IT' 카테고리의 다른 글
이 파일을 열 수 있는 권한이 없습니다. - hosts파일 수정하기! (0) | 2018.08.07 |
---|---|
JSP 처리과정 (0) | 2018.08.01 |
CSS - Padding 과 Margin (0) | 2018.07.19 |
JSON (JavaScript Object Notation) 기초 (0) | 2018.07.11 |