Web root 경로

DATE : 2023/10/26

URL에서 다룬 부분에 덧붙여 file path와 관련된 내용을 가볍게 살펴볼까 한다!

여기서 알아볼 주요 개념은 Web root 경로!

[ Web root 경로]

web root 경로는 web server가 실행되고 있는 위치를 말한다.

client가 파일을 요청할 때는 기본적으로 web server가 실행된 위치를 기준으로 request를 보내게 된다.

즉 web server가 실행되고 있는 위치가 web root 경로가 되고,

"web root 경로가 어디인가"에 따라 접근할 수 있는 자료가 달라지게 된다.

이해를 돕기 위해 간단한 페이지를 만들어 요청해보자!

Termius에서 이번엔 webDev directory로 들어간다.

directory를 열어보면 알겠지만 dockerCMD 파일이 들어있을 것!

이 파일을 실행하기 전에

sudo docker ps -a

현재 실행 중인 docker 파일이 있는 지 확인한다.

실행 중인 파일이 없으니

./dockerCMD &

background mode로 docker 파일 실행했다.

파일을 실행하고 나면 port가 80에서 1018로 변경되기 때문에

http://IP_ADDRESS:1018/file_path

형태로 URL을 입력해야 한다.

여기서 추가적으로 알아야 하는 건 docker 파일을 실행하고 나면

web root 경로가 webApp directory가 된다는 점이다.

이를 확인하기 위해 webApp directory 안에 hello.html을 작성했다.

webApp directory가 web root 경로라면

http://192.168.183.129:1018/hello.html

을 입력했을 때, 정상적으로 hello.html 내용이 출력 되어야 한다.

바-로 값을 넣어보면

hello.html 내용을 확인할 수 있다. 즉 현재 web root가 webApp directory라는 걸 확인한 셈이다.

이번엔 하위 directory에 있는 파일도 요청해보자.

webApp directory 밑에 files & hanhxx_dir를 만들고 각 directory 안에 info.html을 생성했다.

files directory에 있는 info.html을 얻기 위해서는 URL을 어떻게 입력하면 될까??

기본적으로 webApp directory의 경로가 URL로 표현하면

http://192.168.183.129:1018/

이므로 "files directory로 들어가 info.html을 줘"라는 요청이 되려면

http://192.168.183.129:1018/files/info.html

위와 같이 입력하면 된다! hanhxx_dir directory에 있는 info.html의 경우에는

files 위치에 hanhxx_dir를 넣으면 끝!

결과를 확인해보면 정상적으로 페이지가 출력 되는 걸 볼 수 있다!

여기서 잠깐, 만약 hanhxx_dir directory가

web root 경로인 webApp directory보다 상위 directory인 webDev directory로 이동하면 어떻게 될까?

위에서 말했듯이 docker 파일을 실행한 후에는 webApp directory가 web root 경로가 된다.

현재 hanhxx_dir의 경우에는 web root 경로를 벗어나 있는데..

이때 client가 hanhxx_dir - info.html을 얻을 수 있는 방법이 있을까??

정답은 NO!

http://192.168.183.129:1018/../hanhxx_dir/info.html

web root 경로에서 한 번 상위 directory로 이동한 뒤,

hanhxx_dir에 있는 info.html을 달라는 요청을 보내게 되면

위와 같이 Not found 응답을 받게 된다.

말 그대로 web root 경로는 web server의 최상위 경로이기 때문에

이 경로를 벗어날 수 없다!!

terminal 상에서 봤을 때는 webApp보다 상위인 directory가 존재하지만

web root 경로는 web server가 실행되는 위치로 지정되기 때문에 web root 경로를 벗어난

요청은 처리 되지 않는다.

Last updated