https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
Hyper Text
하이퍼 텍스트는 하이퍼 링크를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트라고 한다.
하이퍼텍스트는 사용자가 원하는 순서에 따라 하이퍼 링크를 통해 정보를 얻을 수 있다.
Markup Language
태그 등을 이용하여 문서나 데이터의 구조를 나타내 주는 언어
HTML
문서와 문서가 링크로 연결되도록 하는 태그로 구성된 언어
HTTP
HyperText Transfer Protocol
Transfer: 전송하는 것. 전송에는 보내는 것과 받는 것이 있다.
Protocol: 프로토콜은 통신 규약이다. 물리적으로 떨어진 컴퓨터 끼리 어떻게 HTML 파일을 주고 받을지에 대한 약속이다. 그래서 인터넷 상에서 일어나는 소통은 대부분 HTTP 규약에 따른다.
HTTP : 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속이다.
HTTP의 주요 특징 두가지.
1. Request/ Response(요청/응답)
사용자가 웹사이트에서 어떤 동영상을 보고 싶다고 링크를 누르면, 그 웹사이트의 서버에 요청을 보내서, 요청을 처리하고, 이를 사용자에게 응답을 보낸다.
브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)
그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부릅니다.
2. Stateless(상태없음)
요청과 응답은 독립적이고, 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다. HTTP는 상태를 저장하지 않고(Stateless). 동일한 연결 상에서 연속하여 전달된 두 개의 요청 사이에는 연결고리가 없다. 이는 e-커머스 쇼핑 바구니처럼, 일관된 방식으로 사용자가 페이지와 상호작용하길 원할 때 문제가 된다. 그래서 세션을 사용하면 됨! HTTP 쿠키는 상태가 있는 세션을 만들어 줄 수 있기 때문.
클라이언트: 사용자 에이전트.
사용자 에이전트는 사용자를 대신하여 동작하는 모든 도구입니다. 이 역할은 주로 브라우저에 의해 수행. 브라우저는 항상 요청을 보내는 개체입니다.
웹 페이지를 표시하기 위해, 브라우저는 페이지의 HTML 문서를 가져오기 위한 요청을 전송한 뒤, 파일을 구문 분석하여 실행해야 할 스크립트 그리고 페이지 내 포함된 하위 리소스들(보통 이미지와 비디오)을 잘 표시하기 위한 레이아웃 정보(CSS)에 대응하는 추가적인 요청들을 가져오고, 브라우저는 완전한 문서인 웹 페이지를 표시하기 위해 그런 리소스들을 결합하여 브라우저에 의해 실행된 스크립트는 이후 단계에서 좀 더 많은 리소스들을 가져올 수 있으며 브라우저는 그에 따라 웹 페이지를 갱신한다.
웹 서버:
통신 채널의 반대편에는 클라이언트에 의한 요청에 대한 문서를 제공하는 서버가 존재. 서버는 사실 상 논리적으로 기계.서버는 반드시 단일 머신일 필요는 없지만, 여러 개의 서버를 동일한 머신 위에서 호스팅 할 수는 있다.
Hoisting: 인터넷에 띄운다는 것은 홈페이지의 구성파일들이(html, css, js) 인터넷에 “항상" 연결되고, “절대" 꺼지지 않는 호스트 컴퓨터(웹 서버)에 저장되어 있다가 사용자의 요청이 오면 언제든 응답.
서비스예) AWS ec2/S3, cafe24 호스팅센터 등
IP
IP 주소는 Internet으로 통신하는 각 device(컴퓨터, 통신장비)에 부여된 고유한 값.
스마트폰이나 노트북부터 대규모 소매 웹 사이트의 콘텐츠를 서비스하는 서버에 이르기까지 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하며, 이러한 숫자를 IP 주소라고 한다.
Domain (Domain name)
문자(string)으로 된 고유 주소. 수많은 IP 주소를 사람이 외워서 접속할 수 없기 때문에 기억하기 쉽다.
https://www.github.com/cocoball200
https: protocol
www: subdomain
github: domain
com: top level domain
cocoball200 : path
DNS(Domain Name System)
DNS 또는 Domain Name System은 사람이 읽을 수 있는 도메인 이름(예: www.wecode .com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환.
DNS는 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 한다. DNS 서버는 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어. 이 요청을 쿼리라고 부른다.
서비스 예) Amazon Route 53, Cafe24 도메인관리, 가비아 네임서버 관리
*DNS 서버란 도메인과 서버를 연결해주는 중간 서버로, 도메인 이름을 인터넷상의 주소(IP 주소)로 변환시켜 원하는 컴퓨터를 찾아갈 수 있도록 함.