Web Service
- Web browser: chrome, IE
- HTTP: 심플함. 웹서비스를 하기 위한 프로토콜
- www: 문서 공유를 위해 만들어짐.
웹 서버: 파일을 저장.
- 클라이언트가 웹서버에 요청(request)하고, 웹서버가 응답(response)을 한다.
- 웹서버에 파일 양이 점점 많아짐 -> DB를 만들게 되었음.
- 요청에 따라서 DB에서 다른 값들을 보냄.
동적 페이지 VS 정적 페이지
- 다른 요청에 따라 값이 바뀌면 동적 페이지
- 누가 어떤 값을 요청하던 똑같은 페이지라면 정적 페이지(html, img)
웹 서버의 3가지 구성 요소
1) 웹 서버: 정적 페이지 전달, 페이지를 클라에 전달
2) WAS(Web Application server): PHP 웹 서버에게 문서 페이지를 줌 DB에 데이터를 요청
3) DB: 회원 정보와 같은 정보를 WAS에 보냄
- 대기업의 경우 각각 나눠서 돌림
- SQL: WAS가 DB에 요청할 때 사용하는 언어
- 보통 웹서버 + WAS / DB의 구조로 많이 운영함.
APM (Apache + Php + MySQL)
port 80: web server
.html: 정적 페이지 -> 웹서버에서 처리
.php : 동적 페이지<?php?> -> WAS에서 처리
Php를 사용하는 방법
<?php echo $_GET['name'];?>
//*위와 같이 *<?php* 와 *?>* 사이에 명령어를 사용하면 된다.
name이라는 parameter에 Peroro라는 데이터를 보내고 싶으면 아래와 같이 쓰면 된다.
http://192.168.0.1/score.php?name=Peroro
GET / POST
- 하는 역할: 웹 서버에게 데이터를 전달한다.
- 차이점
- 사용 목적: GET은 서버의 리소스에서 데이터를 요청할 때,
POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용
- 요청에 body 유무: GET은 URL에 담아 보내기 때문에 body가 없음.
POST의 경우 Body에 데이터를 담아 보냄.
- 멱등성: GET 요청은 멱등, POST는 멱등이 아님.
* 멱등성: 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질을 의미.
status code 상태 메시지
200 -> Good
300 -> Redirect
400 -> 클라이언트 측 오류 404 NOT FOUND 400 Bad request
500 -> 서버 측 오류
Burp suite
- 웹 프록시 툴
- 웹 브라우저와 웹서버 사이에 끼어들어서 봄
- 우리가 사용할 유일한 tool
Burp suite 사용법
proxy: 클라이언트와 웹 서버 사이에 패킷을 읽는다.
open browser: 패킷을 읽기 위해 웹 브라우저를 염.(크로니움 기반)
Web history: 읽은 패킷들이 저장되어 있다.
패킷을 선택해 우클릭을 하면 send repeater라는 것이 있다.
이를 이용해 Repeater로 보낼 수 있다.
Request와 Response로 나눠져있는 것을 알 수 있다.
repeater: 이전에 보냈던 request의 데이터를 변조해서 보내거나 이전에 보냈던
패킷을 다시 보낼 수 있다.
chrome network tab과는 뭐가 다른가? chrome은 burp suite과 다르게 패킷을 변경할 수가 없음.
서버 측 코드(백엔드) VS 클라이언트 측 코드(프론트엔드)
//clinet.html
<h1></h1>
<script></script>
- 클라이언트 측 코드 -> 웹 브라우저가 해석함.
//client.php
<?php echo "Peroro"; ?>
- 서버측 코드