[웹 서버란], 파일을 전달해주는 친구를 말 합니다.
식당에서도 server가 주문을 듣고 가져다주는 것처럼 웹서버도 클라이언트가 주문한 파일을 가져다 줍니다.
클라이언트(손님) - 서버(종업원) - WAS(요리사) - DB
[웹 서버에서 주문하는 방법] (프로토콜)
웹 브라우저를 통해서 파일을 달라고 요청하면 됩니다.
브라우저 창에 URL를 입력합니다.
URL의 구조는 다음과 같습니다.
Protocol : // Domain or IP Adress :[Port] / [File Path]
https://google.com:443/index.html
보통은 포트번호와 포트번호 뒤에 있는 index.html은 생략합니다.
http는 80, https는 443 포트를 사용합니다.
잘 알려진 포트들은 생략하고 접속해도, 약속된대로 연결해 주는거죠.
위 구글주소를 해석해 보면 다음 내용과 같습니다.
1. https라는 방식을 사용할거야.
2. 내가 접속하고 싶은 아이피는 잘 모르겠는데, 그 아이피랑 연결된 이름은 google.com 이야. (도메인 네임 서버 DNS를 통해서 니가 아이피를 찾아봐)
3. 포트번호는 443이고
4. index.html 파일을 찾아서 나에게 줘.
[Web Root 경로]
서버에서는 보낼 파일을 준비해 둡니다.
그 파일들이 담긴 공간 중 최상단을 Web Root라고 부릅니다.
집에 내 방이 있고, 그 방을 Web Root 라고 가정해봅시다.
내 방안에 있는 것만 클라이언트에게 줄 수 있으니
방 안에 있는 노트북은 줄 수 있지만, 내 방 밖에 있는 리모컨을 줄 수 없습니다.
보통 리눅스에선 /var/www/html/이 Web Root가 됩니다.
방 안에 있는 물건은 클라이언트가 가져갈 수 있으니,
Web Root를 / 경로로 설정하면 큰 일 나게 됩니다. (모든 파일에 접근 가능)
[웹브라우저는 자료를 보기좋게 보여줘요.]
구글/index.html 파일을 서버로부터 받으면 다음과 같은 글자만 옵니다.

웹브라우저는 위 글자들을 해석하여, 직관적으로 알아볼 수 있게끔 화면을 그려주는 역할을 합니다.

[서버의 파일 준비, WAS]
서버가 클라이언트에게 파일을 주기 위해선, 파일이 있어야겠죠?
네이버 서버라고 가정하면,
각 로그인한 사용자에게 •••님 환영합니다. 처럼 각 사람을 구분해서 파일을 보내줘야 하는데
수십만명에게 제공할 수십만개의 파일을 다 가지고 있는건 낭비죠.
그래서 그때그때 그 사람이 누군지 확인이 되면, 바로 이름만 적어서 보내는 방식을 사용해요. (저 파일을 동적페이지라고 부릅니다.)
웹서버 뒤에 WAS 라는 친구가 있는데, 이 친구가 이런 역할을 맡아서 합니다.
쿵짝쿵짝 파일을 만들어서 웹서버에게 전달하면, 웹서버는 그 파일을 클라이언트에게 전달해주죠.
PHP, ASP, JSP.. 등 백엔드 쪽의 언어로 WAS를 만들어요.
(WAS없이 웹서버 혼자서는 이미 가지고 있던 파일 -> 정적 페이지만 보낼 수 있답니다.)
[리눅스에서 도커 사용방법]
현재 실행중인 도커이미지가 있는지 확인
sudo docker ps -a
실행중인 도커이미지 끄는 방법
sudo docker rm -f
ABC 이름을 가진 도커이미지 실행하기
./ABC &
[PHP]
이름을 받아, 아래쪽에 출력해주는 PHP 예시
<form method="POST">
<input type="text" name="id"/>
</form>
<?php
echo_$POST['id'];
?>
form태그를 통해 사용자에게 id를 받은 후, 그걸 PHP를 통해서 출력(echo)한 내용 입니다.
method는 POST를 사용하여, 브라우저 URL입력창에 해당 내용을 노출하지 않았어요.
GET method를 사용했다면, 해당 내용들이 노출돼요.
보통 아이디 비번 등 보안이 필요한 방식은 POST method를 사용합니다.
GET method에서 노출되는 부분은 파라미터라고 부르는데,
https://www.google.com/search?q=곰돌이푸우
위 내용처럼 ? 뒤에 위치합니다.
파라미터가 여러개일 경우에는 &로 구분해요.
[받은 파라미터를 다른 파일로 전달하고 싶을 때]
form 태그에 action="파일명" 을 적어주면, 그 파일에 받은 파라미터를 보낼 수 있어요.
1주차 과제.
간이 로그인페이지 만들기 (DB연결 X)
아이디 : admin 비밀번호 : admin1234
POST 방식으로 할 것.
아이디와 비번을 제대로 입력했을 때 로그인 시켜주는 페이지 만들기
로그인 페이지를 예쁘게 만들기 (CSS or Bootstrap)
'모의해킹 공부하기 > 모의해킹 수업 복습' 카테고리의 다른 글
| [6주차] SQL Injection으로 데이터 추출하기 (UNION SQL Injection) (1) | 2023.12.04 |
|---|---|
| [5주차] SQL Injection으로 인증(Authentication) 우회(Bypass) (0) | 2023.12.04 |
| [4주차] Burp Suite 기본 사용 방법 (0) | 2023.11.22 |
| [3주차] 로그인 (인증과 식별, 식별/인증 동시), 로그인 유지(쿠키와 세션) (0) | 2023.11.12 |
| [2주차] Database (MySql) phpMyAdmin과 sql사용법 (0) | 2023.11.12 |