본문 바로가기

Dev/Network, Web

(14)
[Network] Subnet Mask 서브넷 마스크 IP주소는 10진수 네자리, 즉 x.x.x.x 의 형태이다. 이 10진수로 이루어진 IP주소를 8자리의 2진수로 바꾸면 0과1로 이루어진 xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx 형태의 총 32비트 숫자가 되는데, 점(.)을 기준으로 각 8자리씩을 묶어 옥텟(Octet)이라고 부른다. IP주소는 네트워크ID+호스트ID 로 구성되어 있다. 네트워크ID는 국가, 도시, 부서 등을 나타내는 특정 그룹, 그리고 호스트ID는 그 그룹에 속한 통신장비(PC, 휴대폰 등)라고 생각하면 된다. IP를 체계적으로 관리하기 위해 클래스라는게 존재하는데, 종류는 아래와 같다. A클래스: IP주소 32비트 맨 앞이 0으로 시작, 앞쪽부터 8자리가 네트워크ID, 뒤 24자리가 호스트ID, 디폴트 서브넷 ..
[Network] WS, WAS 차이 (Apache, Tomcat) 1. WS (Web Server): : 클라이언트가 요청하면, 웹 서버에서는 HTML,CSS 등 정적 자원을 리턴한다. WS에는 Apache web server 등이 속한다. 2. WAS (Web Application Server) : 클라이언트가 요청하면 웹 어플리케이션 서버에서는 동적 자원을 리턴하는데, 개발자가 만들어둔 비즈니스 로직을 수행하고 DB와 상호작용해 얻어낸 결과물 등이 포함된다. WAS에는 Apache tomcat 등이 속한다. WAS하나로도 WS의 기능을 수행할 수 있지만 WS를 따로 분리하는 이유 - WS안에 각각의 기능이 다른 WAS서버를 여러개 둘 수 있고, WS가 트래픽의 흐름을 관리하는 로드밸런서 역할을 할 수 있다. - WS를 리버스 프록시 서버로 활용하여 보안과 성능상의 ..
[Network] OSI 7 layers 네트워크 7계층 OSI (Open Systems Interconnection) 모델은 개방형 시스템으로, 통신을 함에 있어 역할에 따라 각 층을 나누고 여러 시스템 간의 호환성을 위해 데이터의 규격(기준)을 정해놓은 네트워크 표준이다. 1층 물리 Physical Layer 데이터를 받으면 데이터를 디지털 신호(비트)로 전환하여 전송하는 계층. 어떤 데이터를 보냈는지, 에러는 안났는지, 효율적인 전송방법은 무엇인지 등을 고려하지 않고 단순히 송수신만 함. 대표장비로는 통신케이블, 모뎀, 허브, 리피터 등 2층 데이터링크 DataLink Layer 하드웨어와 소프트웨어간 연결고리. 물리계층에서 오가는 데이터(비트)에 신뢰성을 더하기 위해 에러처리, 흐름제어를 한다. 데이터가 출발지IP에서 목적지IP로 이동할 때 거리가 멀면..
[Network] CORS 에러 웹브라우저에는 서버에 어떤 방식으로 자원을 요청하느냐에 따라 적용되는 정책이 있는데, 크게 SOP(Same Origin Policy)와 CORS(Cross Origin Resource Sharing) 두가지로 나뉜다. SOP정책은 같은 출처에서만 리소스를 주고받는 정책인데, 여기서 출처는프로토콜://호스트명:포트 까지를 의미한다. 기본적으로 HTML에서의 요청은 CORS정책을 따르고, fetch, axios 등 스크립트에서 호출하는 요청은 SOP정책을 따른다. 예를들어 브라우저(도메인 A)에서 SOP정책을 따르는 fetch API로 서버(도메인 B)로 데이터를 요청하면, 서버로부터 정상적으로 응답을 받더라도 A와 B가 같은 출처가 아니기 때문에 브라우저 선에서 보안상의 이유로 CORS 에러를 뱉는다. 이..
[Network] HTTP 프로토콜, 3-way handshaking HTTP (HyperText Transfer Protocol)란 인터넷에서 클라이언트가 요청을 보내고, 서버가 요청을 받아 응답한 후 연결을 끊는 형태의 데이터 통신 규약이다. 그럼 어떤 형태로 데이터를 보내는지 확인해보자. 요청 메시지는 위와 같이 네 부분으로 분리되어 있으며 각 부분에 들어가는 내용은 아래와 같다. 1. start line에는 요청 메서드, path, 프로토콜 버전 2. header에는 호스트와 클라이언트 정보 등 3. empty line은 공백라인 4. body 에는 메시지의 내용 위 그림은 응답 메시지의 형태인데, 요청 메시지와 다른점은 start line에 프로토콜 버전, 응답코드, 응답상태가 들어간다는 점이다. 전송 계층(TCP/IP, UDP) 중 연결지향적인 TCP 기반으로 ..
[Network] 사설 SSL로 로컬에서 HTTPS 프로토콜 사용하기 (feat.OpenSSL, 톰캣) HTTP로 운용하던 서버에 외부에서 데이터를 받을 일이 생겨 로컬서버, 실서버에서 SSL을 적용해 보면서 정리한 글이다.로컬환경: Windows10, tomcat6.0.53, jdk1.7.0_80서버환경: CentOS5.5, tomcat6.0.53, jdk1.7.0_80 HTTP프로토콜 통신은 클라이언트와 서버 사이에 주고받는 데이터를 암호화하는 기능이 없어 안전하지 않다.보안을 강화하기 위해서는 인증기관(Certificate Authority)을 통해 SSL 인증서를 발행받은 후 HTTP에 SSL(Secure Sockets Layer) 을 추가한 HTTPS프로토콜을 사용해야 한다. 서버가 SSL 인증서를 발급받고 클라이언트와 통신하는 과정은 대략적으로 아래와 같다. 1. 서버는 내 사이트..