스터디/해킹실습2

[네트워크보안] HTTP, cookie, caching, DNS, soket programming

y00&z1 2021. 10. 3. 23:57

1. HTTP

HTTP? hypertext transfer protocol (클라이언트-서버 프로토콜)
클라이언트(브라우저) -> 서버 ; requset
서버 -> 클라이언트 ; response




1-1. HTTP request message

HTTP 메세지는 사람이 읽을 수 있다! (ASCII)

method - GET(서버로부터 리소스 가져옴), POST(서버로 데이터 전달)
path - 가져오려는 리소스 경로
헤더 - 서버에 대한 추가정보 전달

*uploading form input
-POST method ; to server
-URL method (GET method) ; from server

1-2. HTTP response message

status code - 요청의 성공 여부와 그 이유를 나타냄.

*status codes (서버->클라이언트 전달)
200 OK - 요청 성공
301 Moved Permanently - 요청한 리소스의 URL 변경되었음(데이터 옮겨짐)
400 Bad Request - 잘못된 문법으로 요청 이해 불가
404 Not Found - 요청받은 리소스 찾을 수 없음
505 HTTP Version Not Supported - 요청에 사용된 HTTP 버전 지원되지 않음


https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

HTTP 개요 - HTTP | MDN

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org


2. cookie

: 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각
쿠키를 저장해 놓았다가 -> 동일한 서버에 재 요청시 저장된 데이터 함께 전송함.

두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용
-> 로그인 상태 유지 가능 (stateless HTTP 프로토콜에서 상태정보 기억시켜줌)

*쿠키의 목적
세션관리, 개인화, 트래킹(tracking)


https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies

HTTP 쿠키 - HTTP | MDN

HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데

developer.mozilla.org



3. caching

3-1. web cache (=HTTP cache)
: 서버 지연을 줄이기 위해 웹페이지, 이미지 등의 웹 문서들을 임시 저장하기 위한 정보기술
웹 캐시 시스템를 통과하는 문서들의 사본을 저장 -> 이후 특정 조건을 충족하는 경우 요청(request) 캐시화 가능!



캐싱 - 주어진 리소스의 복사본을 저장하고 있다가 요청 시에 복사본을 제공하는 기술!

웹 캐시 저장소에 요청된 리소스를 가지고 있다면 ?
원래의 서버로부터 리소스를 다시 다운로드 (X), 리소스의 복사본을 반환 (O)

=> 모든 클라이언트를 서비스할 필요가 없어짐 -> 서버의 부하가 완화됨, (캐시가 원래 서버에 비해) 클라이언트에 더 가까이에 있어 리소스를 회신하는 시간 줄어듦.
==> 리소스가 변하기 전까지만 캐싱하고 변한 이후에는 더이상 캐싱하지 않는 것 중요함.


크게 사설(private) 혹은 공유(shared) 캐시 두 가지 존재함.






https://developer.mozilla.org/ko/docs/Web/HTTP/Caching

HTTP caching - HTTP | MDN

웹 사이트와 애플리케이션의 성능은 이전에 가져온 리소스들을 재사용함으로써 현저하게 향상될 수 있습니다. 웹 캐시는 레이턴시와 네트워크 트래픽을 줄여줌으로써 리소스를 보여주는 데

developer.mozilla.org