https://dreamhack.io/lecture/roadmaps/1
Stage 1. Web Hacking Introduction
Stage 2. Background – Web
<HTTP>
: 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜
: 클라이언트가 서버에게 요청하면 서버가 응답하는 것이 기본 메커니즘
: HTTP 서비스 포트 : TCP/80, TCP/8080
- HTTP 헤드 : 시작 줄 + 헤더(필드+값/HTTP 메시지 또는 바디의 속성) + CRLF
- HTTP 바디 : 헤드의 끝을 나타내는 CRLF 뒤의 모든 줄 / 클라이언트나 서버에게 전송하려는 데이터
<HTTP 요청>
: 서버에게 특정 동작을 요구하는 메시지
=> 시작 줄 : 메소드 + 요청 URI + HTTP 버전
- 메소드 : URI가 가리키는 리소스를 대상으로 서버가 수행하길 바라는 동작
-> GET : 리소스를 가져오라는 메소드
-> POST : 리소스로 데이터를 모내라는 메소드 (전송할 데이터는 보통 HTTP 바디에 포함됨)
- 요청 URI : 메소드의 대상
- HTTP 버전 : 클라이언트가 사용하는 HTTP 프로토콜의 버전
<HTTP 응답>
: HTTP 요청에 대한 결과를 반환하는 메시지
: 요청을 수행했는지, 하지 않았는지, 안 했다면 이유는 무엇인지와 같은 상태 정보(status), 그리고 클라이언트에게 전송할 리소스가 응답에 포함됨
=> 시작줄 : HTTP 버전, 상태코드(status code) + 처리 사유(reason phrase)
- HTTP 버전 : 서버에서 사용하는 HTTP 프로토콜의 버전
- 상태코드 : 요청에 대한 처리 결과 (세 자릿수)
-> 1XX ; 요청을 제대로 받았고, 처리가 진행 중
-> 2XX : 요청이 제대로 처리됨 / 200: 성공
-> 3XX: 요청을 처리하려면, 클라이언트가 추가 동작을 취해야 함 / 302 : 다른 URL로 갈 것
-> 4XX: 클라이언트가 잘못된 요청을 보내어 처리에 실패 / 400: 요청이 문법에 맞지 않음, 403 : 클라이언트가 리소스에 요청할 권한이 없음, 404 : 리소스가 없음
-> 5XX: 클라이언트의 요청은 유효하지만, 서버에 에러가 발생하여 처리에 실패 / 500 : 요청을 처리하다가 에러 발생, 503 : 서버가 과부하로 인해 요청을 처리할 수 없음
- 처리 사유 : 상태 코드가 발생한 이유를 짧게 기술
<HTTPS>
: HTTP의 응답과 요청은 평문으로 전달
: HTTPS는 TLS 프로토콜을 도입하여 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화함
Stage 3. Cookie & Session
<Cookie>
-> HTTP 프로토콜의 특징 : Connectionless:하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것 / Stateless:통신이 끝난 후 상태 정보를 저장하지 않는 것
=> HTTP의 상태를 유지하기 위해 쿠키 탄생
- 쿠키 = KEY + VALUE
- 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송 / 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트 구분
<Session>
-> 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 세션 사용
- 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(유추할 수 있는 랜덤한 문자열)를 만들어 클라이언트에 전달하는 방식으로 작동 / 키를 일반적으로 session id라고 함
- 브라우저는 해당 키를 쿠키에 저장하고 이후에 HTTP 요청을 보낼 때 사용
- 서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인함
'Webhacking > 개념' 카테고리의 다른 글
[Web] Dreamhack STAGE 8 (0) | 2022.08.27 |
---|---|
[Web] Dreamhack STAGE 7 (0) | 2022.08.27 |
[Web] Dreamhack STAGE 6 (0) | 2022.08.27 |
[Web] Dreamhack STAGE 5 (0) | 2022.08.26 |
[Web] Dreamhack STAGE 4 (0) | 2022.08.25 |