본문 바로가기
네트워크

[네트워크]web browser,IP, proxy,port

by whitedeveloper 2023. 3. 30.
  • 웹 브라우저란?
    • 동기적으로 (HTML + CSS), javascript언어를 해석하여 내용을 화면에 보여주는 응용 소프트웨어
    • 웹 서버에 필요한 자원(웹 페이지)를 요청하면 서버는 응답하고 웹 브라우저는 이를 해석한 후 사용자에게 보여준다.
    • Request - 웹 브라우저가 웹 서버에게 웹 페이지를 달라고 하는 것
    • Response - 웹 브라우저가 요청했던 웹 페이지를 웹 브라우저에게 제공하는 것
    • 보통 웹 브라우저와 웹 서버는 다른 컴퓨터에 위치한다. 웹 서버가 다른 컴퓨터에서 실행되고 있기 때문에, 웹 브라우저가 웹 서버에 연결하려면, 웹 서버가 실행 중인 컴퓨터의 주소를 알아야 하는데, 이 주소를 IP 주소라고 한다.
    •  

브라우저의 구조

 

사용자 인터페이스

  • 사용자가 접근할 수 있는 영역
  • URL을 입력할 수 있는 주소 표시줄, 이전/다음 버튼, 북마크 메뉴,새로고침 버튼,홈 버튼 등 요청한 페이지를 보여주는 창을 제외한 모든 부분
  1. 브라우저 엔진
    • 사용자 인터페이스와 렌터링 엔진 사이의 동작 제어
    • Data Stroage를 참조하여 로컬에 데이터를 쓰고 읽으면서 다양한 작업을 한다.
  2. 렌더링 엔진 - 상세 읽어볼 것
    • 웹 서버로부터 응답 받은 자원을 웹 브라우저 상에 나타냅니다.
    • HTML 문서를 응답 받으면 HTML과 CSS를 파싱하여 화면에 표시
  3. 통신
    • HTTP 요청과 같은, 서버와 통신이 가능하게 하는 네트워크 호출에 사용됩니다.
  4. UI 백엔드
    • select, input 등 기본적인 위젯을 그리는 인터페이스 입니다.
  5. 자바스크립트 해석기
    • 자바스크립트 코드를 해석하고 실행합니다.
  6. 자료 저장소
    • Cookie, Local Storage, Indexed DB 등 브라우저 메모리를 활용하여 저장하는 영역입니다.

-상세한 내용

https://all-young.tistory.com/22
https://velog.io/@duck-ach/Network-%EC%9B%B9-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%9D%98-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95

 

[ Network ] 웹 브라우저의 동작 과정 (with. DOM, CSSOM)

🐰 개요 웹 개발자로써 웹 페이지가 어떻게 구현되는지에 대해 꼭 알아야 할 것 같아서 책도 읽어보고 검색하여 여러 글을 읽어보다가 정리가 필요할 것 같아서 정리해본다. 웹 브라우저에도

velog.io

 

브라우저와 렌더링 엔진 동작 원리

더보기 🙋 오늘 포스팅에서는 서버로부터 전달(응답)받은 자원을 어떻게 화면에 출력하는 지를 다룰 예정이다. 이 글을 읽고 나면, 브라우저 주소 창에 google.com을 입력했을 때 어떤 과정을 거쳐

all-young.tistory.com

 

 

  • 프록시 서버
    • 인터넷에서 유저를 대신해서 데이터를 가져오는 서버
    • 클라이언트가 서버에 직접 접근해서 요청한 내용을 가져와야 하지만 프록시 서버가 대신 서버에 요청하고 가져다 준다.
    • 포워드 프록시 서버
      • 프록시 서버가 클라이언트 바로 뒤에 놓여있는 것

 

  • 같은 내부망에 존재하는 클라이언트의 요청을 받아 인터넷을 통해 외부 서버에서 데이터를 가져와 클라이언트에게 응답
  • 즉, 클라이언트가 서버에 접근하고자 할 때, 클라이언트는 타겟 서버의 주소를 포워드 프록시에 전달하여, 포워드 프록시가 인터넷으로 요청된 내용을 가져오는 방식
  • 장점
    • 클라이언트 보안 (Security)
      • 포워드 프록시 서버에 룰을 추가해서 특정 사이트에 접속하는 것을 막을 수 있다
    • 캐싱 (Caching)
      • 그래서 똑같이 해당 페이지에 접근하거나, 다른 클라이언트가 해당 페이지를 요청할 때 , 캐시된 정보(페이지)를 그대로 반환할 수 있고, 이는 서버의 부하를 줄이는 효과
      • 우리가 어떤 웹 페이지에 접근하면 프록시 서버는 해당 페이지 서버의 정보를 캐싱(임시보관)해둔다.
    • 암호화 (Encryption)
      • 암호화된 요청은 다른 서버를 통과할 때 필요한 최소한의 정보만 갖게 되는데, 이는 클라이언트의 ip 를 (보안을 위해) 감춰주는 보안 효과를 내준다.왜냐면 IP 추적해도 포워드 프록시 서버 IP만 보이기 때문
      • 따라서 본 서버에서 IP 주소를 역추적해도 포워드 프록시 서버를 사용하면  정체를 파악하기 어렵게 된다.
      • 클라이언트의 요청은 포워드 프록시 서버를 통과할 때 암호화된다.
  • 리버스 프록시 서버
    • 프록시 서버가 웹 서버 앞에 놓여있는 것

  • 클라이언트는 웹서비스에 접근할때 웹서버에 요청하는 것이 아닌, 프록시로 요청하고 프록시 서버가 서버로부터 데이터를 가져오는 방식
  • 장점
    • 로드 밸런싱 (Load Balancing)그리고 그러한 대량의 트래픽을 하나의 싱글 서버로 감당해 내기란 어렵다.
    • 하지만 리버스 프록시 서버를 여러 개의 본 서버들 앞에 두면 특정 서버가 과부화 되지 않게 로드밸런싱이 가능하다.
    • 유명한 웹 사이트는 하루에도 수백만명이 방문한다.
    • 서버 보안 (Security)따라서 해커들의 DDoS 공격과 같은 공격을 막는데 유용
    • 리버스 프록시를 사용하면 본래 서버의 IP 주소를 노출시키지 않을 수 있다.
    • 캐싱 (Caching)
    • 포워드 프록시의 캐싱과 비슷한 기능
    • 암호화 (Encryption)그러나 리버스 프록시를 사용하면 들어오는 요청을 모두 복호화하고 나가는 응답을 암호화해주므로 클라이언트와 안전한 통신을 할수 있으며 본래 서버의 부담을 줄여줄 수 있다
    • 본래 서버가 클라이언트들과 통신을 할때 SSL(or TSL)로 암호화, 복호화를 할 경우 비용이 많이 들게 된다.
  • 고정 IP와 유동 IP
    • 고정 ip
      • 변경되지 않는 공인 ip를 의미 → 한번 부여 받으면 반납하기 전까지 해당 ip를 할당
      • 인터넷 사이트를 운영할 때 고정 ip를 사용, 고정 ip를 사용하지 않으면 외부에 알려진 ip가 다른 사이트에 사용될 수 있다.
      • 사용 되는 곳 - 특정 ip만 접속되도록 하는 게임 등의 IP인증용과 웹 서버, 원격 데스크톱, 파일 서버 등을 운용하기 위해 주로 사용
    • 유동 ip
      • ip 를 부여하지 않고 ip 갱신주기가 되었을 때 기기를 껐다 켜면 ISP(인터넷 서비스 공급자)에서 남아있는 ip를 골라 기기에 ip를 할당해주는 것을 의미
      • ISP에서 제공해줄 수 있는 IP는 유한하다. 그런데 인터넷을 사용하는 기기가 꺼져있는데도 IP를 할당받고 있으면, IP가 부족할 경우 필요로하는 사용자에게 제공해줄 수 없다.
      • 사용이유 - ISP에서 최소한의 ip로 더 많은 사용자들에게 인터넷 서비스를 제공하기 위함
  • 공인 IP와 사설 IP
    • 공인 IP
      • 외부에 공개되어 있는 IP
      • 인터넷 업체가 사용자에게 할당하며 공유기가 인터넷과 통신하도록 하는 역할을 하는 외부 IP
      • 인터넷에 연결된 다른 컴퓨터에서 접근이 가능하며, 해킹의 위험이 있기 때문에 보안 프로그램을 설치해야 한다.
    • 사설 IP
      • 로컬 IP, 가상 IP라고도 불리며 외부에서 접근할 수 없는 IP
      • 보통 내 컴퓨터에서 사용하는 로컬 IP - 윈도우 환경에서는 cmd 창을 호출하여 ipconfig 명령어를 통해 내 IP에 대한 확인이 가능
      • 공유기가 노트북, 스마트 TV, 휴대폰 등 홈 네트워크에 연결된 장치에 할당한 내부 IP
      •  

https://nordvpn.com/ko/blog/public-ip-and-private-ip/

 

공인 IP와 사설 IP… 다양한 IP 유형의 차이는?

공인 IP와 사설 IP 등 다양한 IP 유형의 차이가 궁금하신가요? 이 글에서 IP 유형별 차이와 장단점을 확인해 보세요.

nordvpn.com

  • 패킷
    • 기다란 메시지를 여러개로 쪼갠 작은 한 조각
    • 쉽게 말해서 우리가 인터넷을 이용해 주고받는 이메일, 채팅 메시지, 금융 거래 내용 등 다양한 데이터의 내용을 작은 단위로 쪼갠 데이터
    • 인터넷과 같은 컴퓨터 네트워크를 통해 전송되는 데이터는 작은 단위의 패킷으로 나뉘어 전송하고 이를 수신하는 기기에서 재조합하는 과정을 거친다.
    • 사용 이유 - 두 대의 컴퓨터가 공유된 케이블을 통해 이런 긴 비트 라인을 송/수신하는 경우 이 케이블에 연결된 또 다른 컴퓨터는 앞선 두 대의 통신이 끝날 때 까지 정보를 보내지 못하고 기다려야하기 때문에
  • Port
    • 논리적인 접속장소, 인터넷 프로토콜인 TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용
    • 사용이유
      • 네트워크 상에서 통신을 할 때 IP 주소를 바탕으로 해당 서버가 있는 컴퓨터에 접근
      • 하나의 IP에서 여러 애플리케이션을 실행할 경우, 컴퓨터에는 여러 개의 서버가 실행
      • 이때 포트번호를 통해 대상 IP 기기의 특정 애플리케이션의 서버에 접속할 수 있도록 알려주어야 한다.

  • 한 서버 인스턴스에서 웹 서버와 메일 서버 두 개를 동시에 실행 중인 상황
    • IP 주소만으로는 어느 서버로 요청을 보내는지 알 수 없다.
    • 포트 번호를 통해 receiver를 특정하여 어느 서버로 보내는 요청인지 특정

'네트워크' 카테고리의 다른 글

[네트워크]HTTP / HTTPS 차이  (0) 2023.08.10
[네트워크]HTTP 상태 코드  (0) 2023.08.10
[네크워크]GET과 POST차이  (0) 2023.08.10
[네트워크]HTTP  (0) 2023.08.10
[네트워크]HTTP + 보안 1  (1) 2023.03.29