- How does the internet work?
- 네트워크 : 서로 연결되어 있는 하나의 통신망, 전세계를 연결(www, world wide web)
규모에 따라 종류가 다양하지만 LAN(local area network), WAN(wide area network)정도는 기억을 해둘 것
LAN : 근거리 통신망 / WAN : 여러개의 LAN 대역을 연결 - 네트워크에 연결되어 있는 컴퓨터들을 host라고 부름
- 인터넷도 그 네트워크(통신망)의 일종이며 웹 서비스 등 다양한 서비스를 제공
- 인터넷에서는 클라이언트(요청)과 서버(요청을 받아 처리)에서 눈에 보이지 않는 요청과 답변을 주고받고 있음
- 네트워크 : 서로 연결되어 있는 하나의 통신망, 전세계를 연결(www, world wide web)
- What is HTTP?
- 프로토콜(Protocol) : 네트워크에서 노드끼리 통신할 때 데이터의 내용과 양식을 규정 한 것 (OSI 7계층 모델 참고)
- 네트워크 상에서는 데이터를 패킷(블록들) 형태로 전달하고 받을때 패킷을 해체
- 패킷 : 여러 프로토콜이 캡슐화 된 것, wireshark로 확인 가능
- HTTP : 거의 모든 웹 서비스를 사용할 때 사용하는 프로토콜, www에서 핵심으로 쓰임
클라이언트에 서버에 저장되어있는 웹 표준 데이터를 받아오기 위한 규약 - HTTPS(secure) : HTTP에 보안 추가(SSL/TLS)
- 요청 프로토콜 구조 : Request(Type URI HTTP 버전), Headers, (공백, Body)
- 응답 프로토콜 구조 : StatusLine(HTTP 버전 상태코드 상태문구), Headers, (공백, Body)
- 헤더에는 쿠키, 호스트 등 요청자의 정보나 서버정보, 컨텐츠에 관련된 정보 등을 담고 있음
- Browsers and how they work?
- 브라우저 : 인터넷에서 웹 페이지를 볼 수 있게 하는 응용 프로그램(software)
ex. 구글 크롬, 윈도우 익스플로러, 애플 사파리, 네이버 웨일, 모질라 파이어폭스 등.. OS에 따라 다양한 브라우저 존재 - 웹 서버로부터 HTML 데이터(웹 문서)를 전송받고, 렌더링 엔진을 사용해 이를 변환해서 화면에 표시(이미지, 텍스트 등)
- 브라우저에서는 URL이라는 웹 고유주소를 통해 서버의 데이터에 접근할 수 있음
- 브라우저는 쿠키라는 파일을 이용하여 개인 데이터를 저장함(하단의 번외 참고)
- 브라우저 : 인터넷에서 웹 페이지를 볼 수 있게 하는 응용 프로그램(software)
- DNS and how it work?
- 클라이언트가 서버가 데이터를 주고받기 위해 서로 IP 주소를 알아야 함
- DNS(Domain Name System) : 도메인을 IP주소로 변환해주는 역할
- 사용자가 URL을 입력하면 > DNS server에 먼저 접속하여 해당 URL의 IP를 받아옴 > IP에 접속하여 데이터 받아옴
- 인터넷 통신사(ISP)에서 이 DNS server를 제공
- 컴퓨터 DNS 설정을 public DNS server로 변경하면 통신사가 제공하는 DNS server 외의 다른 server를 사용할 수 있음
- 원하는 도메인 주소를 알기 위해 다양한 DNS 서버가 존재하고 협력함
root 최상위 > top-level (.kr, .com 등) > second-level > sub 최하위(전체 IP를 알고 있음) - Root Name Server는 ICANN이라는 비영리단체에서 관리하고 있음
- What is Domain Name?
- 네트워크에 연결된 컴퓨터(호스트)에 연결할 수 있는 고유 주소로 IP를 사용
- 복잡한 IP 대신 주소와 포트번호로 이루어진 고유 주소 대신 도메인을 사용하게 됨
- DNS를 통해 고유 IP를 알아내어 데이터를 주고 받을 수 있음
- What is hosting?
- host : 네트워크(인터넷)에 연결된 각각의 컴퓨터
- hosting : IDC 같은 인프라를 미리 구축해두고 서버쪽에서 사용되는 컴퓨터나 소프트웨어를 제공하는 사업자
- IDC(Internet Data Center) : 서버가 동작하기 위한 최적의 공간
- 웹 호스팅 : 웹 어플리케이션(서버)를 운영하기 위한 모든 것을 제공
- 서버 호스팅 : 서버 컴퓨터만 제공, 웹서버, 미들웨어, DB 등은 직접 설치해서 웹 어플리케이션을 운영해야 함
- 클라우드 컴퓨팅 : Virtual machine을 통해 가상화되어있고, 사용한 만큼 요금을 내는(종량제)
- 클라우드 서비스의 종류
1) IaaS(infrastructure as a service, 컴퓨터와 운영체제 제공)
2) PaaS(Platform, 컴퓨터, 운영체제, Platform 제공)
3) SaaS(Software, 소프트웨어까지 제공)
* 직접 운영 (컴퓨터부터 소프트웨어까지 본인이 직접 구축하고 운영)
[번외]
* 쿠키와 토큰
1) 쿠키 : 서버가 response를 보낼 때 브라우저에 넣어주는 개인 데이터, 유효기간이 있음, 인증 등 다양한 정보를 저장2) 토큰 : 네이티브 앱에서 사용하는 쿠키(쿠키는 브라우저 전용!), 서버에 토큰을 보내 세션정보를 보냄
* 세션과 JWT
1) 세션 : 서버에 저장된 유저의 개인정보, 쿠키나 토큰에 세션정보를 담아 보내 DB를 조회해 동일한 유저임을 확인 가능
세션정보를 이용해 다양한 기능 사용 가능(특정 기기에서 강제 로그아웃, 넷플릭스 계정 변경 등)
DB에 모든 정보를 저장해야 해서 큰 용량의 DB가 필요할 수 있음
2) JWT : 세션 DB가 필요없는 토큰 형식, 토큰에 담긴 정보를 통해 서명 string을 생성하고 해당 서명이 유효한지 확인, 암호화 불가능
세션을 활용한 기능은 사용할 수 없지만 DB가 필요 없음(QR 체크인 등)
'Study > basic' 카테고리의 다른 글
[Basic] Frontend의 이해 - Web Security Knowledge (0) | 2023.05.11 |
---|---|
[Basic] Frontend의 이해 - Version Control System (0) | 2023.05.04 |
[Basic] Frontend의 이해 - JavaScript (0) | 2023.04.27 |
[Basic] Frontend의 이해 - HTML (1) | 2023.04.20 |
[Basic] 프론트엔드 로드맵 Frontend loadmap 따라 공부해보기(pdf) (0) | 2023.01.16 |