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 |
더 자세한 레퍼런스는 해당 출처 링크를 참고하시기 바랍니다.
'웹[Web]' 카테고리의 다른 글
[HTTP] HTTP 쿠키란(Cookie)? 쿠키 등장 배경 그리고 쿠키와 세션의 차이점. (3) | 2018.09.11 |
---|---|
JSON이란? JSON 규칙 (0) | 2018.03.24 |
[HTTP] 리다이렉트(Redirect)란? (2) | 2018.02.15 |
[HTTP] MIME Type(Multipurpose Internet Mail Extensions) (3) | 2018.01.30 |
[WEB] 웹에서의 정적 자원과 동적 자원 (1) | 2017.12.20 |