본문 바로가기

Spring_SpringBoot/이론

[ URI 요청(GET) ]

SpringSecurity관련해서 url요청으로 테스트하고 있는데 URI요청에 대해서 정리해야겠다.

 

문제점 : Spring Security 통해서 /savemoney/mypage에 로그인 할 때 필터링을 걸었다. 그런데 로그인이 되지

              않았는데도 SpringSecurity가 실행이 되지 않고 해당 페이지가 보였다. 결국 문제는 브라우저의 캐시

              때문이다...

              아무리 내가 savemoney/mypage를 해도 브라우저 자체 캐시로 그 전에 입력했던 saveMoney/mypage로

              치환해서 요청을 한 것이다. 그럼 front단인 node.js는 "saveMoney/mypage" 로 요청을 받고 Apache는

              반응하지 않고 node.js만 반응한 것이다.

 

문제 원인 : Apache는 대소문자를 "엄격하게" 구분한다. node.js는 대소문자를 구분하지 않는다.

                  Chrome 브라우저는 대소문자를 구분하지 않는다.

 

문제 해결 : 브라우저 캐시 날림.. 정상적으로 필터링 된다.

 

 

1) saveMoney/mypage

 

2) savemoney/mypage(401)

 

 

 

[ URI 요청(GET) ]

==================== ==================== ==================== =================

 

1. 요청 처리 방식

 

일단 기본적으로 웹 페이지에서 URL요청은 GET요청이다.

 

다음의 그림은 예시이다.

 

왼쪽은 URl요청(Get요청)이고 DeleteMapping과 호출방식이 일치하지 않는다. 그러므로 다음과 같이 컨트롤러를

타지 않고 405에러를 뱉는다.

 

 

2. 대소문자

결론적으로 말하자면 기본적으로 도메인은 대소문자 상관없고 경로(path)와 쿼리 문자열(query string)

대소문자를 구별한다.

 

예를 들면 다음과 같다. 검색창에 naver.com이 아니라 NAVER.COM을 치면 정상적으로 출력된다. (이미지 생략)

그러나 다음과 같이 URI부분에 Path부분을 대소문자를 수정하면 에러가 난다.

 

기본 URI → 임의 URI 변경 실패

 

3. 해결방법

해결 방법은 다음과 같다. Apache의 경우 설정을 해주면 된다.

<IfModule mod_speling.c>

     CheckSpelling On

</IfModule>