Network Basis
-
[Network] 통신 프로토콜의 발전에 대한 간략 정리글 (IP, TCP/UDP, HTTP)Network Basis 2022. 3. 29. 19:23
이 글은 각 통신 프로토콜이 어떠한 필요에 의해 만들어졌는지 간단하게 역사를 되짚어 보는 글입니다. 자세한 정보들은 해당 포스팅에서 얻은 키워드로 검색하시길 바래요 :D 아래는 각 계층에서 데이터를 어떻게 가공하는지 이해를 돕기위하여 제가 직접 만들었습니다 😏 사실 위 그림의 각 계층에서 Data에 추가되는 정보들은 흐름의 이해를 돕기 위해 간략히 표현한 것이며, 실제로는 더 다양하다. OSI 7 Layer & TCP/IP 모델 설명글 보러가기 글이 거의 리팩토링 되듯이 계속 수정하면서 난잡하게 정리되어있긴 합니다 ㅠㅠ... (추후 정리예정) [Network] 네트워크 통신의 기본 구조 ( OSI 7 Layer, TCP/IP) # OSI 모델 (Open Systems Interconnection) - 1..
-
[Network] 정적웹과 동적웹의 정확한 정의를 고민해보자 (Feat. AWS & GitHub Pages)Network Basis 2022. 2. 22. 19:04
* 필자의 지극히 개인적인 생각입니다. GitHub 의 Pages 와 AWS 의 S3 에서 정적웹호스팅이라는 단어를 쓴다. 하지만 정적웹과 동적웹에 대해 구글링을 하면, 뭔가 Git과 AWS의 용어선택이 이상하다는 생각이 든다. 왜냐하면, React 또한 [정적웹호스팅]이라는 단어로 Git과 AWS에서 호스팅하기 때문이다. 이 글은 Git 과 AWS에서 일하시는 분들은 똑똑할꺼니까 그분들이 맞다고 가정하고 기존의 정적웹과 동적웹의 정의를 다시 정의 한 포스팅이다. # 세간에 알려진 정의 (from. 위키백과 + 다른 블로그 포스팅들) ## 정적웹 1. 웹서버에 이미 저장된 html 문서를 클라이언트에게 전송하는 웹 페이지 2. 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 됨..
-
[Network] 데이터의 직렬화(Serialization)Network Basis 2022. 2. 17. 13:33
# 정의 직렬화란 메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 바이트 형식으로 변환하는 것 다차원의 자료를 파일로 저장하거나 네트워크로 보내기에 알맞게 일차원으로 펼치는 것 * Java 에서는 Serialization 인터페이스를 구현한 클래스만 직렬화가 가능하다고 한다. * 보안상으로 노출되지 않아야되는 멤버들은 @Transient로 마킹한다고 한다. 여기서 의문점이 생길 수 있다. (저는 그랬다..) # 고개 드는 궁금증 ??? 원래 컴퓨터는 모든 데이터를 0,1 로 처리하지않나? 다차원의 데이터라도 0,1 로 구성된 각 벡터 데이터를 연속적으로 붙이면되는거 아닌가? 이게 뭐라고 거창하게 '직렬화' 라는 명칭을 가지고 있지? 그리고 Java에서는 Serialization 이 구현 안 된..
-
[Network] TCP/UDP 포트 목록 (well-known port, registerd port, dynamic port)Network Basis 2022. 2. 7. 22:28
# Reference TCP/UDP의 포트 목록 - 위키백과, 우리 모두의 백과사전 잘 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA에서 할당한 TCP 및 UDP 포트 번호의 일부이다. 일반적으로 포트 번호는 다음과 같이 세 가지로 나눌 수 있다. 0번 ~ 1023번: 잘 알려진 포 ko.wikipedia.org List of Common Network Port Numbers Objectives: Learn common port numbers and services, and which transport protocol they use. Prerequisites: you have to know about TCP/IP protocols in general. Key terms: ..
-
[Network] Apachi, Nginx, Tomcat 이 하는일이 뭘까? (Feat. Proxy)Network Basis 2021. 12. 15. 09:37
# 대충 개념 잡기 Apachi, NginX 은 프록시서버(웹서버)이며 Tomcat, Jetty, Undertow 는 WAS다. (WAS : Web Application Server , 자바진영 용어) 용어차이기 때문에 복잡하게 생각하지말고 Spring+Tomcat / Node.js 등으로 만든 서비스를 Application Apachi, NginX 등은 Application 앞단에서 일을 처리하는 웹서버(관리자, 스케줄러)라 생각하면 된다. 그래서 Apachi와 NginX는 관리자의 역할에 맞게 Application 들이 각자의 서비스를 잘 수행할 수 있게 관리하는 법들을 고민한다. Tomcat 은 Spring 프로그램(Application)의 관리자(컨테이너) 정도로 생각하면 된다. (Applicat..
-
[Network] HTTPS는 무엇인가? HTTPS의 데이터를 주고받는 방식Network Basis 2021. 12. 10. 21:19
# HTTPS 의 2가지 보안개념 1. Request의 Data를 암호화하여 Server에 보낸다. (비대칭키와 대칭키 방식 혼용) 2. 검증기관(CA)으로 부터 검증된 사이트만 주소에 HTTPS 사용이 허가되어, 피싱사이트로 Reqeust를 보내는 경우를 방지한다. # 검증기관 (Certificate Authority, CA) 각 브라우저들은 CA 회사들의 목록을 가지고 있음 CA가 검증한 인증서는 CA의 개인키로 암호화 되어있다. # HTTPS 의 데이터 송수신 방법 * [Client -> Server] 를 CS , [Server -> Client] 를 SC 로 표기하겠음 >> Handshake (탐색전) 1. 사이트 접속시, 브라우저에서 사이트로 랜덤문자열을 전송 (CS) 2. 사이트에서 브라우저로..
-
[Network] HTTP 프로토콜의 발전 (HTTP 1.1 vs HTTP2) 그리고 구글(HTTP3, QUIC)Network Basis 2021. 12. 10. 20:39
HTTP 의 성능개선이 어떤식으로 이루어졌는지 알아보자..! 🧐 [Network Layer] HTTP 는 Application Layer(5th Layer) 의 프로토콜이며, TCP/UDP는 Transport Layer(4th Layer) 의 프로토콜이다. 자세한 내용은 아래의 포스팅을 참조하길 바란다. [Network] 네트워크 통신의 기본 구조 ( OSI 7 Layer, TCP/IP) # OSI 모델 (Open Systems Interconnection) - 1982년경, 네트워크 아키텍처를 하나로 통일하고자 만든 네트워크 표준규격 - 너무 복잡해서 현재 사용되지 않지만, 네트워크 기능 분석, 설계 및 학습에 널 developer-ping9.tistory.com # HTTP 1.0 의 핵심 (with..
-
[Network] JWT - 왜 refresh 토큰이 필요하지? (refresh 토큰이 탈취된다면?)Network Basis 2021. 12. 10. 16:00
# Refresh Token 해커의 Access Token 탈취를 방지하기 위해서, Access Token 의 유효기간을 짧게 두고 Access Toekn 의 유효기간이 만료되었을 시, 다시 서버에게 Request 헤더에 Refresh Token 을 삽입한채로 인증(Silent Authentication)을 요청하기 위해 사용되는 토큰. 서버는 Refresh Token 을 검수한 후, 클라이언트에게 Access Token 을 재발급한다. 주로 Refresh Token 은 서버 DB에 저장한다고 한다. Access Token 은 다양한 정보를 담고 있으며, Refresh Token 은 재발급때 도움을 주는 짤막한 정보만 담아야 할 것이다. (뇌피셜) # 의문점 1. Refresh Token 자체에도 인증정..