[HTTP] URL Encoding

웹[Web] 2017. 10. 30. 20:31
HTTP URL
HTTP URL은 다음과 같은 형식으로 구성되어 있습니다.

http://localhost:8080/test.jsp?name=dhsense&age=13

여기서 http: 는 http 라는 프로토콜을 사용하겠다는 의미로 해석됩니다.
// 뒤부터는 도메인 주소를 의미하고 그 다음에 오는 : (콜론) 뒤에는 포트번호를 의미하는데 생략시 80번을 기본적으로 사용합니다.
그 뒤의 /는 웹서버의 루트(/)를 의미합니다.
?는 그 뒤로 쿼리스트링(호출파라미터가 온다는 의미)이 이어진다는 의미로 해석됩니다.

 


쿼리스트링의 경우 변수이름=변수값 의 형태를 이루는데 해당 URL을 호출하면서 넘길 파라미터들을 문자열로 나열한 것이며 파라미터가 여러개인 경우 & 을 붙여 사용합니다.

 


이렇게 URL을 해석하는데 필요한 규칙들이 존재하며 / :  = & 과 같이 어떤 의미를 나타내는 예약 문자들이 존재합니다.
이밖에도 http url에는 +기호는 공백(스페이스) 를 의미 하는 등 많은 기호들을 사용하는데 문제는 호출 파라미터 값에 특수기호가 들어가야 하는 경우가 있다는 것입니다.

 


예를 들어 http://localhost:8080/test.jsp?address=서울특별시33-22 와 같이 주소값에 '-'가 들어간 경우입니다.

 

또는 학점처럼 grade=A+ 에서 A 뒤의 +가 들어가는 경우인데 +는 공백을 의미하는 예약문자이므로 서버에서는 기대한것과는 다르게 'A '를 받게 될것입니다.

 

더군다나 URL은 ASCII로만 표현되므로 서울특별시처럼 한글을 표현할 수 없기때문에 그 의미에 대응되는 ASCII값으로 변환해주어야 합니다.

 


인코딩 규약 RFC 3986 에 따르면 해당 문자들은 다음과 같이 변환될 수 있습니다.
Character
From Windows-1252 From UTF-8
space %20 %20
! %21 %21
" %22 %22
# %23 %23
$ %24 %24
% %25 %25
& %26 %26
' %27 %27
( %28 %28
) %29 %29
* %2A %2A
+ %2B %2B
, %2C %2C
- %2D %2D
. %2E %2E
/ %2F
%2F

더 자세한 레퍼런스는 해당 출처 링크를 참고하시기 바랍니다.

 

 

 

 

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!