02-6 http, https 차이점 정리.
HTTP: 일반적인 통신 규약. 요청-응답으로 이뤄짐
HTTPS: HTTP + 보안. CA로부터 인증서를 발급받아 제시해야한다.
서버: 정보나 서비스를 저장하고 있다가 필요시 네트워크를 이용하여 사용자에게 전달하는 컴퓨터
클라이언트: 서버에서 데이터를 받아 사용하는 컴퓨터
웹 서버: 컴퓨터의 특정 폴더에 담긴 파일로 웹사이트를 띄울 수 있도록 하는 프로그램.
데이터 센터(IDC): 적절한 상황과 사고 발생시 빠르게 대처가 가능한 전문 시설. 수많은 서버용 컴퓨터와 통신설비, 냉각장치가 함께 있다.
서버 호스팅: 서버용 컴퓨터를 임대해주는 서비스. 데이터 센터 내 컴퓨터에 원격으로 접속하게 된다.
온프레미스: 회사 자체에 서버를 갖추고 관리하는 것. 자유롭게 구축하고 통제필요가 없다.
단순 서버 호스팅: 데이터 센터에서 컴퓨터를 빌려 원하는대로 구성할 수 있다.
단점
1. 사용 가능 용량이 한정적.
갑자기 사용량이 늘어날 경우 먹통될 수 있다.
2. 서버에 대한 많은 지식을 요구
자체적으로 맞춤으로 구성하기 때문에 많은 지식이 필요하여 규모가 작은 기업 혹은 개인에게는 부담스러울 수 있다.
클라우드 컴퓨팅 서비스: 모든 컴퓨팅 서비스를 클라우드로 제공하여 필요한만큼 대여받는 서비스
탄력적으로 사용가능하며 기술 요소도 제공받을 수 있으며 안정적으로 운영이 가능하다.
IaaS: 클라우드를 이용하여 서버용 컴퓨터를 빌린다. 이용자가 모든 설정을 세팅해야함.
PaaS: 개발, 서비스를 위한 환경이 자동으로 설치되어 제공하는 플랫폼을 제공
SaaS: 소프트웨어가 이미 완성된 클라우드 서비스 사용료만 지불하여 사용
(웹) 브라우저: 인터넷 웹 사이트를 사용하기 위한 소프트웨어
크롬을 사용해 네이버 접속시 일어나는 일
1. 네이버 홈페이지를 입력한다.
2. 크롬 브라우저는 해당 주소로 접속하겠다는 요청을 보낸다.
3. 네이버 서버는 각종 파일과 데이터를 보내 응답한다.
4. 크롬은 서버로부터 받은 문서를 실행하여 화면에 보여준다.
HTML<>
내 태그를 이용하여 구조를 만든다.
CSS 디자인 요소를 넣어주는 정적 언어
JS 웹 페이지 구성 요소에 여러 기능을 추가시키는 동적 언어
변수: JS내 데이터를 담는 공간
웹 표준: 브라우저가 HTML,CSS, JS를 읽는 표준화된 방식
반응형 웹: 기기, 화면 크기에 맞게 자동으로 크기, 위치 등을 조절한다.
적응형 웹: PC용, 모바일용 사이트를 따로 제작하는 것. 복잡한 사이트의 경우 오히려 이득일 수 있다.
브라우저에 저장되는 작은 텍스트로 사용자가 갖고 있는 정보를 저장
제 3자도 쿠키를 확인, 수정, 삭제할 수 있어 개인정보를 저장하기엔 적합하지 않음.
사용자의 정보를 한번 받으면 유효기간이 끝날때 까지 서버로 인증 받았음을 증명하는 세션을 발급
요청이 들어오면 세션 아이디를 서버로 전송하여 확인한다.
세션은 안정적이지만 동시접속자가 많아지면 메모리가 부족해져 속도가 느려진다.
암호화된 토큰을 발행하여 확인. 토큰만 확인하면 정보 확인이 가능하기 때문에 서버 부하를 막을 수 있다.
단 유효기간이 끝나기 전까지 통제할 수 없어 탈취당할 수 있으니 만료시간을 짧게 줄여야한다.
한번 전송받은 데이터를 저장했다가 재사용시 빠르게 꺼내쓸 수 있다. 데이터 전송을 요청하지 않아도 되기때문에 빠르게 사용할 수 있으며 데이터 사용량도 줄일 수 있다.
분산된 여러 서버를 이용하여 사용자와 가까운 서버에서 데이터를 전송하여 속도를 높임.
캐시 서버에 한번만 전송하여 빠르고 안정적으로 데이터를 받아올 수 있다.
iOS, AOS 각각 운영체제에 맞는 앱을 개발하는 것.
작동하는 기기에 최적화된 형태로 개발된다.
성능을 최대로 활용해야한다면 네이티브 앱으로 만드는 것이 좋음
시간과 인력 소모가 크며 공개, 업데이트시 까다롭다는 단점이 있음.
같은 소스코드로 두 운영체제를 동시에 작동시킬 수 있다.
더 쉽고 적은 자원으로 개발이 가능하다.
각 운영체제에 특화되지 않아 활용도가 떨어지며 양쪽 심사를 모두 거쳐야하는 단점이 있다.
기기에 무관하게 모든 기기에서 같은 컨텐츠를 볼 수 있는 웹사이트. 반응형/적응형 방식을 사용한 웹사이트.
모바일앱과 비슷한 UI/UX를 지원하는 웹사이트. 앱이 아니기 때문에 브라우저에 초점이 맞춰져 모바일에서 사용하기엔 불편한 단계가 존재한다.
웹 사이트로 제공하며 네이티브 앱에서 사용 가능한 기능까지 제공하는 앱. 모바일 전용 기능도 사용가능하다.
웹 뷰: 웹 앱 형태로 만들어진 웹사이트를 화면에 띄운다. 웹사이트에서 제공할 수 없는 하드웨어 기능을 네이티브 단에서 자체 수행하도록 하나다.
모바일 웹사이트지만 기존 웹 앱에서 할 수 없는 접근성, 편의성을 제공한다.
브라우저마다 사용 기능에 차이가 발생한다.
프론트엔드: 웹사이트 구성부분 중 브라우저에서 동작하는 부분을 의미. 브라우저를 통해 실행되는 프로그램
백엔드: 브라우저가 요청하는 부분으로 서버에서 작동하는 부분을 의미.
프레임워크: 라이브러리와 자체코드를 합쳐 필요한 소스코드를 추가하는 것.
라이브러리: 특정 기능을 수행하는 소프트웨어 조각으로 프로그램에 들어갈 수 있다.
API: 브라우저가 보낸 요청을 서버에서 이해할 수 있도록 만든 약속신호
REST API: 쉽게 어떤 요청을 할지 짐작할 수 있는 공유 방식
XML: 마크업 언어로 태그 사이에 정보가 들어가있다. 태그 내 다른 태그를 작성할 수 있다.
JSON: XML의 가독성을 개선하며 컴퓨터가 읽고 쓰는 속도도 개선하기 위해 사용 각 항목마다 따옴표,
가 있으며 대괄호[]
중괄호{}
로 객체를 작성. 하지만 문법 오류에 취약하다.
YAML: 사람이 읽기 작성하기 쉽기 위한 용도.
AJAX: 자바스크립트로 서버와 브라우저가 데이터를 교환할 수 있는 통신기능. 비동기 방식으로 요청하며 (프로그램을 중단하지 않고 페이지 리로드 없이 데이터를 불러옴)
IP 주소: PC나 스마트폰을 식별할 수 있도록 기기와 연결된 네트워크 끝단의 주소.
IPv4: 0~255로 이루어진 0.0.0.0 ~ 255.255.255.255 주소.
IPv6: IPv4 주소 고갈을 대비하여 고안된 방식 0~F 까지 4자리씩 8개로 표현
도메인: IP주소가 아닌 이름으로 사용하는 것
URL: 네트워크 상 자료가 어디에 있는지를 나타내는 주소.
DNS: 전세계 도메인과 각각의 도메인에 연결된 IP주소가 저장되어 DNS에 요청시 해당 IP주소를 찾아준다.
DNS에서 요청하여 처리하는 순서
1. 주소창에 도메인 입력시 DNS에 IP 주소를 요청하는 것
2. DNS는 해당 도메인에 맞는 IP주소를 찾아 브라우저에 전달한다.
3. 브라우저는 해당 IP 주소의 웹 서버에 연결한다
https: 통신 규약으로 어떤 종류의 통신이 이뤄질지를 결정.
호스트명: www, mail, map, shopping 등 호스트로 어떤 통신인지를 명명
도메인: 호스트명 뒤에 이뤄지는 주소 .com
.kr
등
WWW: 인터넷 공간을 의미. 하이퍼텍스트를 지원한다.
하이퍼 텍스트
원하는 부분만 읽어도 되는 문서. 비선형적으로 연결되어있다.
HTTP: 클라이언트의 요청 서버의 응답으로 구성된 통신규약. 모두 개별적으로 이뤄진다.
HTTPS: HTTP가 보안에 취약하여 보안장치 없이 데이터를 주고받는 점에서 탄생. HTTP + 보안
SEO(검색 엔진 최적화): HTTPS로 제공되는 사이트에서 우선적으로 표시되기 위해 하는 설정.
자주 사용하는 메소드 모음
GET: 서버에서 각종 데이터를 요청, 브라우저에서 웹사이트 접속시, API에서 서버로 데이터를 가져올시
POST: 서버에 새로 저장될 자료를 전송, 새 게시물 작성
PUT: 특정 데이터 전체를 새로 저장, 게시물 수정시
PATCH: 특정 데이터 일부 수정, 조회수 등을 올릴때
DELETE: 특정 데이터 삭제
OPTIONS: 해당 URL에 어떤 메소드를 사용하는지 파악용
서버 응답에는 3자리 수의 응답코드가 함께한다.
1xx: 요청을 성공적으로 받음. 해당 작업 수행 중
2xx: 요청을 성공적으로 받아 이루어졌음.
200: 요청이 성공적으로 처리됨 (가장 흔함)
204: 성공적으로 요청하였으나 답으로 보낼 내용이 없음
206: 요청대로 일부 컨텐츠만 전송
3xx: 요청 수행을 위해 해당 요청을 다른 주소로 보내는 추가 작업이 필요함. 새 URL로 이동시 사용
4xx: 클라이언트 요청에 문제 발생.
401 Unauthorized: 로그인이 필요하나 로그인되지 않음
403 Forbidden: 로그인 되었으나 요청을 보낼 권한이 없음
404 Not Found: 요청에 해당하는 데이터가 없음, URL이 잘못됨
5xx: 요청에 문제가 없으나 서버에 이상이 있어 응답불가
500: 서버 내부에 오류 발생
502: 서버 과부하 또는 기타 네트워크 문제로 통신이 어려움
로컬 DNS서버: 통신사 혹은 기업에서 운영하는 서버로 인터넷 사용자가 가장 먼저 접근하는 DNS 서버.
반응 속도, 도메인 정보 업데이트, 특정 사이트 차단 여부 등이 달라 필요시 환경 설정으로 다른 지역으로 옮길 수 있다.