TIL : 210624_목_(네트워크 기초_HTTP)

beablessing·2021년 6월 24일
0

TIL

목록 보기
20/33
post-thumbnail

오늘배운것 (기초)

  • 클라이언트-서버 아키텍쳐
  • 프로토콜
  • HTTP, API
  • ssr/ ssr
  • cors

클라이언트-서버 아키텍쳐

2-Tier 아키텍쳐 : 리소스가 존재하는 곳(서버)과 리소스를 사용하는 앱(클라이언트)을 분리시킨 것
빈번한 업데이트가 요구되는 경우, 두 곳을 분리해주어야 함.

client와 server

client : 리소스를 받아 브라우저 창에 뿌린다.
server : 눈에 보이지 않으며, 리소스를 전달해주는 역할을 한다

2-Tier 아키텍쳐 : 클라이언트와 서버
3-Tier 아키텍쳐 : 클라이언트와 서버 그리고 데이터베이스(창고역할)

통신

클라이언트와 서버간의 통신은 요청과 응답으로 구분된다.
요청이 있어야만 응답이 온다

프로토콜 : 통신을 하기 위한 통신규약, 즉 약속
웹 애플리케이션 아키텍쳐에서는, HTTP 프로토콜을 이용해서 서로 대화를 나눈다.

요청예시) GET/americano HTTP/1.1 Hosts: starbucks.com
응답예시) HTTP/1.1 200 OK  { "data":"americano"}

HTTP (프로토콜 중 하나)

웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
HTTPS: HTTP에서 보안이 강화된 프로토콜

HTTPS가 필요한 이유 세가지 : 개인정보보호, 무결성, 식별

개인정보 보호 : 아무도 메세지를 가로챌 수 없도록 만든다
(브라우저 url표시줄의 녹색자물쇠는 외부접근차단이 되어있다는 것을 의미) 
무결성 : 메세지가 목적지로 가는 중 , 조작되지 않도록 만든다
식별 : ssl인증서 
그리고 이 메커니즘을 `암호화`라고 한다. 
  • 리소스를 주고받는 것
  • 무상태성!! (한번만 통신하고 끝이야)
    상태가 있는경우 => 한번 접속하면 다른 서버와 계속 연결된 상태에 있어야함.
    따라서 관리가 힘들고 비용이 늘어나게 됨/

API

주문할 수 있는 메뉴판

  • 정확한 주문 방법을 따라 서버에 요청해야한다.
    서버가 어떻게 구성되어있는지 모르는 상태라면, CT는 자원을 확인할 수 없다
    따라서 서버 API는 모두 API.docs라는 설명서를 가지고 있는데..
    이처럼 서버는 리소스를 잘 활용할 수 있도록 API제공해야한다.
    즉 의사소통이 가능하도록 만들어진 접점.
    (application programming interface)

  • 인터넷에 있는 데이터를 요청할때 HTTP프로토콜을 사용하며,
    주소(URL,URI)를 통해 접근할 수 있다

아메리카노 두잔 전부 헤이즐넛시럽 넣어주세요 
(여기서 ?뒤에 붙은 문자열들을 (&제외) 파라미터라고 부른다. )

호스트(http://starbucks.com)/coffee/americano?quantity=2&syrup=hazelnet

HTTP API

  • http요청에는 메소드라는 것이 존재함 (CRUD)
  • create/read/update/delete의 역할을 함
  • 조회: GET /  추가: POST /  갱신: PUT /  삭제: DELETE

URL 과 URI

  • URL
file://www.google.com/search?q=Java 

위의 예시에서 살펴보면,
file:// --> scheme
www.google.com --> hosts
/search --> url-path
?q=Java --> query

scheme: 통신방식(프로토콜)을 결정한다
hosts : 웹서버의 이름, 도메인, IP // port ?? (:80, :3000 등)
url-path : 웹서버에서 지정한 루트 디렉부터 페이지,이미지 등이 위치한 경로와 파일명

  • URI
    URL기본요소(scheme, hosts, url-path)에 추가적으로 query, bookmark를 포함
    query: 웹 서버에 보내는 추가적인 질문

IP & PORT

  • IP주소(internet protocol address): 인터넷상에서 사용하는 주소체계_4덩이의 숫자
    (각 덩어리마다 0-255)

  • port: ip주소가 가리키는 피씨에 접속할 수 있는 통로(채널)
    0~65535까지 사용할 수 있으며, 0-1024까지의 포트번호는 이미 정해져 있다.
    예를들어

22: SSH
80: HTTP
443: HTTPS

도메인 & DNS

  • 도메인
    해당 주소에 위치한 상호
    (nslookup 도메인주소`로 IP주소를 확인해볼 수 있다. )
  • DNS
    도메인과 IP주소는 매칭하는 과정이 필요하다.
    domain name system 그 과정을 쌍방으로 수행하는 데이터베이스 시스템

추가적인 것들

  • 127.0.0.1은 로컬pc
  • 0.0.0.0 , 255,255,255,255: broadcast address
    즉, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소.
profile
프론트엔드 개발자

0개의 댓글