CS지식/네트워크
-
게이트웨이(Gateway)란 무엇인가?CS지식/네트워크 2021. 6. 8. 16:11
웹은 점점 사용자 수가 많아지고 처음에는 간단한 문서를 전달하는 용도였으나 사용자의 요구사항이 많아지면서 복잡한 기능을 구현해야했다. 이에 따라 더 복잡한 리소스(동적 페이지나 데이터베이스를 통한 콘텐츠 등)가 요구되기 시작했고 모든 리소스를 한 개의 애플리케이션으로만 처리하기 어려워졌다. 이를 해결하기 위해 게이트웨이를 만든 것이다. 게이트웨이는 누군가(클라이언트, 서버)에게 요청을 처리해달라는 부탁을 들어줘야하고 요청에 대한 응답을 할 수 있다. 이러한 게이트웨이는 동적인 콘텐츠를 생성하거나 데이터베이스에 질의를 보낼 수 있다. 또한, HTTP 트래픽을 다른 프로토콜로 변환하여 클라이언트가 다른 프로토콜을 알 필요 없이 서버에 접속할 수 있게 하는 역할을 한다. 아래의 예시 그림을 보자. 클라이언트는..
-
캐시(Cache)란 무엇인가?CS지식/네트워크 2021. 6. 5. 21:50
캐시를 한 마디로 표현하면 웹에서 자주 쓰이는 리소스의 사본은 자동으로 보관하는 HTTP 장치이다. 캐시는 어떠한 이유로 나타나게 된 것일까? 먼저 캐시가 없는 보통의 환경을 생각해보자. 클라이언트가 여럿 존재하고 리소스를 가지고 있는 서버가 존재할 것이다. 여러 클라이언트가 자주 쓰는 페이지가 존재한다면 페이지에 접속할 때마다 항상 서버에 요청을 보내고 서버는 같은 리소스를 클라이언트들에게 매 번 보내야 된다. 똑같은 바이트들이 네트워크를 통해 전송이 이루어지면 네트워크 대역폭이 소모되고 웹 서버에 부하를 주게 된다. 이러한 점을 개선하기 위해 나온 것이 캐시이다. 클라이언트와 가까운 곳에 캐시를 두어 자주 요청되는 리소스의 사본을 저장하고 추후에 같은 요청에 대해서는 캐시에서 응답을 줄 수 있기 때문..
-
프락시(Proxy)란 무엇인가?CS지식/네트워크 2021. 6. 2. 22:50
프락시는 클라이언트와 서버 사이에 위치하여 HTTP메시지를 정리하는 중개자 역할을 한다. 프락시가 없다면 클라이언트는 서버와 직접 통신하게 되는 것이고 프락시가 있다면 프락시가 클라이언트의 입장에서 서버와 통신해주는 역할을 한다. 이러한 프락시는 웹 서버처럼 보이기도 하고 웹 클라이언트처럼 보이기도 한다. 그 이유는 클라이언트의 요청을 받아 프락시는 서버에게 응답을 받아 돌려주므로 웹 서버처럼 동작하는 것과 같고 프락시가 클라이언트의 요청을 서버에게 보내기도 하므로 웹 클라이언트처럼 동작하는 것과 같기도 하기 때문이다. 프락시는 하나의 클라이언트만을 위한 개인 프락시와 여러 클라이언트가 사용가능한 공용 프락시가 있다. 그러면 클라이언트와 서버가 직접 통신하면 되지 왜 프락시를 사용하는 것일까? 그 이유는..
-
웹 서버(Web server)란 무엇인가CS지식/네트워크 2021. 5. 30. 23:17
웹 서버는 클라이언트의 HTTP 요청을 처리하고 응답을 제공하는 역할을 한다. 웹 서버가 하는 일은 어떤게 있을까? 먼저, 클라이언트가 요청을 보내고 응답을 받기 위해 커넥션을 맺기를 원한다. 클라이언트로부터 커넥션 요청이 오면 커넥션을 받아들이거나 원치않은 커넥션이라면 커넥션을 받아들이지 않는다. 클라이언트와 커넥션을 맺게되면 클라이언트의 HTTP 요청 메세지를 읽어 들인다. 요청 메세지를 읽어 들이면 무슨 요청인지 해석하고 어떠한 행동을 해야하는지 파악한 후 행동을 취한다. 만약에 어떠한 리소스를 접근하는 요청이라면 해당 리소스에 접근하여 요청을 처리하고 HTTP 응답 메세지를 생성한다. 그 후에 HTTP 응답메세지를 클라이언트에 보내고 로그파일에 트랜잭션 완료에 대한 기록을 남긴다. 그러면 조금 더..
-
TCP 커넥션이란 무엇인가CS지식/네트워크 2021. 5. 27. 23:07
HTTP는 웹에서 클라이언트와 서버가 통신을 하기 위해 사용되는 프로토콜이다. HTTP를 사용한 통신에서 실제로 데이터가 클라이언트에서 서버로 가고 서버에서 클라이언트로 가는 것은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어진다. 클라이언트는 서버로 TCP/IP 커넥션을 맺을 수 있고 TCP/IP의 특성에 의해 통신되는 메시지들은 손실이나 순서가 바뀌지 않고 안전하게 전달된다. TCP 커넥션은 어떻게 이루어질까? 웹 브라우저(클라이언트)에서 URL을 입력받으면 URL에서 IP주소와 포트번호를 추출한다. 목적지의 IP주소와 포트번호를 가지고 TCP커넥션을 생성하게 된다. 먼저 클라이언트는 TCP커넥션을 생성하기 위해 작은 TCP 패킷을 서버에게 보낸다. 이 패킷에는 SYN이라..
-
HTTP 메세지란 무엇인가CS지식/네트워크 2021. 5. 24. 23:11
HTTP메세지는 HTTP를 통해 통신하는 클라이언트와 서버 사이에서 주고받는 데이터의 블록들이다. HTTP메세지는 클라이언트가 서버에게 보내는 요청 메세지와 서버가 클라이언트로 보내는 응답 메세지가 있다. 메세지는 시작줄, 헤더 블록, 본문 세 부분으로 이루어진다. 시작줄은 해당 메세지가 어떤 메세지인지 간략하게 서술하고 헤더 블록은 메세지의 속성을 말해주고 본문은 보내고자하는 데이터를 가지고 있고 생략이 가능하다. 요청 메시지의 형식은 응답 메시지의 형식은 으로 이루어져 있다. 각 부분에 대해 자세히 알아보자. - 메서드 메서드는 클라이언트 측에서 서버가 어떠한 동작을 해주기를 원하는지 알려주는 것이다. 대표적으로 사용되는 메서드는 아래의 표와 같다. - 요청 URL 요청 대상이 되는 리소스를 지정한 ..
-
URL은 무엇인가 (HTTP완벽 가이드 공부 시작!!)CS지식/네트워크 2021. 5. 21. 20:30
지난(5월 17일) '그림으로 배우는 HTTP & Network basic'을 다 읽고 오늘부터는 조금 더 심화된 학습을 진행하기 위해 박재성님이 다음으로 추천해주신 HTTP 완벽 가이드로 공부하기 시작했다. 박재성님은 스터디를 동해 읽는 것을 추천했지만 나는 나만의 커릴큘럼과 일정으로 진행하고자 힘들겠지만 혼자 공부하기를 시작했다. (참고한 유튜브: www.youtube.com/watch?v=ugP3iNPtf0w) 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 20~50페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 우리는 웹 브라우저를 사용하면 주소창에 주소를 입력하여 웹 페이지에 접속한다. 여기..
-
11일차 - 웹 공격 기술 (2)CS지식/네트워크 2021. 5. 17. 22:51
1. 강제 브라우징 (Forced Browsing) 강제 브라우징은 웹 서버의 디렉토리에 있는 파일 중에서 공개 의도가 없는 파일이 열람되게 되어 공격에 노출되는 것입니다. 즉, 공격자가 공격 코드로 직접 공격하거나 함정을 걸어두어 정보를 빼내는 것이 아니라 웹 서버를 잘못 설정하거나 설계하여 발생하는 문제이다. 강제 브라우징으로 인해 다음과 같은 악영향을 받는다. - 고객 정보 등 중요 정보 누설 - 접근 권한이 있는 사용자에게만 표시하지 않는 정보 누설 - 링크되지 않은 파일 누설 공개하고 싶지 않은 파일의 URL을 숨기는 보안 대책을 사용하고 있는 경우, 해당 URL을 알게 되면 파일을 볼 수 있게 된다. 2. 세션 하이잭 (Session Hijack) 세션 하이잭은 공격자가 유저의 세션 ID를 입..