2주차 스터디 Background: Web, Http/Https

2024. 4. 4. 14:46웹 해킹 공부

1. Background: Web

  • 웹의 구성 요소
    • 프론트 엔드: 이용자의 요청을 받는 부분
    • 백 엔드: 이용자의 요청을 처리하는 부분
  • 프론트엔드의 구성 요소: 웹 리소스
  • 웹 리소스: 웹에 갖춰진 정보 자산, 고유의 uri(Uniform Resource Identifier)를 갖는다
  • if ) http://dreamhack.io/index.html 주소를 입력하면 dreamhack.io에 존재하는 /index.html 경로의 리소스를 가져오라는 의미
  • 웹 리소스의 대표적인 종류
    1. HTML(Hyper Text Markup Language): 글자 표현
    2. CSS(Cascading Style Sheets): 색 표현
    3. JS(JavaScript): 동작 표현
  • 웹 서버: 정보를 제공하는 주체
  • 웹 클라이언트: 정보를 받는 이용자
  • http: 웹상에서 통신을 하기위해 정해둔 일종의 규칙(프로토콜)
  • 웹 클라이언트와 서버의 통신과정
  1. 클라이언트가 브라우저를 이용하여 웹 서버에 접속
  2. 브라우저는 이용자의 요청을 해석해서 HTTP형식으로 웹서버에 리소스를 요청( EX ) HTML,CSS,JS 정보)
  3. 서버는 클라이언트가 권한을 가지고 있을경우 요청에 따른 동작을 함
  4. 서버가 이용자에게 전달할 리소스를 HTTP형식으로 브라우저에게 전달

5.브라우저는 서버에게 응답받은 리소스를 시각화하여 클라이언트에게 제공

2.Background: HTTP/HTTPS

1) HTTP

서버와 클라이언트의 정보교환을 요청과 응답으로 정의한 프로토콜(일종의 규약)
HTTP의 기본 메커니즘: 클라이언트가 서버에 요청하면 서버가 응답( HTTP 포트에서 진행)
  • 사전지식
    • 네트워크 포트: 네트워크에서 서버와 클라이언트가 정보를 교환하는곳 클라이언트가 요청을 포트에 내놓으면 서버가 포트에서 그 요청을 가져가 요청에 해당하는 정보를 다시 포트에 내려놓으면 클라이언트가 그 정보를 가져감
    • 서비스포트: 네트워크 포트중 특정 서비스가 점유하고 있는 포트 HTTP는 80번 포트를 사용한다
    • 포트로 데이터를 교환하는 방식은 전송계층의 프로토콜을 따름 전송 계층의 대표적인 방식으로는 TCP와 UDP가 있는데 이 방식이 같아야만 데이터가 교환됨
  • HTTP 메시지: HTTP요청 과 HTTP응답으로 구성 요청과 응답모두 헤드와 바디로 구성됨
  • HTTP 헤드: 필드와 값으로 구성 HTTP메시지 또는 바디의 속성을 알려줌 CRLF로 끝남
  • HTTP 바디: 클라이언트나 서버에게 전송하려는 데이터가 담김 CRLF 뒤 모든 줄을 말함
  • HTTP 요청:서버에 요청하는거 시작줄은 메소드, 요청URI, HTTP 버전으로 구성
  • 메소드: URI가 가리키는 리소스를 대상으로 서버가 수행하길 바라는 동작을 의미함 ex) GET: 리소스 내놔, POST: 리소스에 내 데이터 반영해
  • HTTP 응답: 요청에 대한 서버의 응답 시작줄은 HTTP버전,상태코드,처리사유로 구성 각각 띄어쓰기로 구분
  • HTTP버전: 서버에서 사용하는 HTTP 프로토콜의 버전을 나타냄 상태코드: 요청에 대한 처리 결과를 세 자릿수로 나타냄(가끔 보이는 404 이거 리소스가 없는거였음..ㅋㅋㅋ)

2)HTTPS

HTTP의 응답과 요청은 평문으로 전달됨 그러다보니 공격자가 중간에서 가로채면 매우 곤란..
따라서 HTTPS는 TLS라는 프로토콜을 도입하여 응답과 요청을 암호화함
HTTPS를 쓰는 주소는 [<https://로>](<https://xn--2o2b/>) 시작함

3.Background: Web Browser

웹은 HTTP를 기반으로 클라이언트와 서버가 통신하는데 일반 이용자가 HTTP의 규칙을 이해하고 사용하는건 너무어렵다 여기서 등장한것이 웹브라우저 인데 웹브라우저는 서버와 HTTP통신을 대신해주고, 수신한 리소스를 클라이언트에게 보여주는것을 해주는 편리한 소프트웨어이다.

  • 웹브라우저가 하는 동작
  • 웹 브라우저의 주소창에 입력된 주소를 해석한다. (URL 분석) 인 네임 서버에 주소에 해당하는 IP주소를 찾아달라고 요청한다 찾아진 주소로 HTTP를 통해 서버에 리소스를 요청한다 리소스를 받아와 클라이언트에게 제공한다
  • URL이란 웹에 있는 리소스의 위치를 표현하는 문자열authoriy는 host와 port로 구성되는데 호스트는 웹서버에 대한 주소에 대한 정보를 가지고있고 포트는 접속할 웹서버의 포트에 대한 정보를 가지고있음
  • shceme://authoriy/path?query#fragment 로 이루어짐
  • 도메인 네임이란 IP주소 대신사용하는 문자열이다 IP주소는 불규칙한 숫자로 이루어져있기 때문에 사람이 외우기힘들다 따라서 도메인 네임을 사용한다
  • DNS란 도메인 네임 서버의 약자로 도메인 네임과 그에 해당하는 IP주소를 저장해놓는 서버이다. DNS에 도메인 서버를 제공하면 그에 해당하는 IP주소를 얻을 수 있다.