TIL _ HTTP_01

해달·2021년 7월 29일
0

TIL

목록 보기
19/80
post-thumbnail
post-custom-banner

Today 공부

  • 클라이언트-서버 아키텍처
  • 프론트엔드/백엔드
  • API
  • HTTP
  • URI/URL
  • IP/POST

[클라이언트-서버 아키텍처]

상품 정보같은 리소스가 존재하는 곳과, 리소스를 사용하는 앱을 분리시킨 것을 2티어 아키텍처 또는, 클라이언트-서버 아키텍처라고 부른다


리소스를 사용하는 앱이 바로 "클라이언트"
리소스가 제공(serve)하는 곳은 "서버"라고 부른다


  • 리소스에 접근하는 앱 : 손님(client) 서버에 요청
  • 리소스를 가지고 있는 서버 : 점원(server) 요청에 응답

[3-Tier 아키텍처]

일반적으로 서버는 리소스를 전달해주는 역할만 담당한다.
리소스를 저장하는 공간을 별도로 마련해주는데 이 공간을 DB(data base)라고 부른다.
클라이언트-서버 아키텍처에 +데이터베이스 = 3-Tier 아키텍처


[프론트엔드와 백엔드]

프론트엔드 와 백엔드는 아키텍처에서 어떤 분야를 다루는지에 따라 구분된다

프론트엔드 : 클라이언트처럼 사용자가 눈으로 보고 UI클릭 등 상호작용을 할 수 있는 앱을 주로 만드는 개발자

백엔드 : 사용자 눈에 직접 보이지 않게 뒤에서 상품정보를 API로 노출 , 로그인/로그아웃 등의 사용자 인증을 주로 다루는 개발자


[클라이언트와 서버 종류]

client : 보통 플랫폼에 따라 구분된다

  • 브라우저를 통해 이용하는 웹 (웹사이트 or 웹 앱)
  • 스마트폰 / 태블릿용 앱
  • 데스크탑 앱

server : 무엇을 하느냐에 따라 종류가 달라진다.

  • 파일서버 : 파일을 제공하는 앱

  • 웹 서버 : 웹사이트에 필요로 하는 정보들을 제공하는 앱

  • 메일 서버 : 메일을 주고 받을 수 있도록 도와주는 앱

  • DB : 데이터 제공자로서 일하므로 일종의 서버라고 볼 수 있다


[API] (Application Programming Interface)

  • 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야 합니다 ---> API
  • Interface : 의사소통이 가능하도록 만들어진 접점 ex)메뉴판

[HTTP]

프로토콜 : 통신규약, 약속
각자의 프로토콜마다 지켜야하는 규약이 존재한다

웹 애플리케이션 프로토콜 : HTTP

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

[주요 프로토콜]

OSI 7 Lasyers(응용 계층)
1. HTTP : 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
2. HTTPS : HTTP에서 보안이 강화된 프로토콜
3. FTP : 파일 전송 프로토콜
4. SMTP : 메일을 전송하기 위한 포로토콜
5. SSH : CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜
6. RDP : Windows 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
7. WebSocket : 실시간 통신, Push등을 지원하는 프로토콜

(전송계층)

  • TCP : HTTP,FTP 통신의 등의 근간이 되는 인터넷 프로토콜
  • UDP : (양방향의 TCP와는 다르게) 단방향으로 작동하는 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 인터넷 프로토콜

[URL](Uniform Resource Locator)

래퍼런스 사이트

  • scheme, hosts, url-path로 구분 할 수 있다.
  • scheme : 통신방식(프로토콜) 결정
  • hosts :웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP
  • url-path : 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로
  • 파라미터를 사용하기 위해 물음표(?)와 & 기호를 사용한다
  • URL디자인은 비교적 단순하나 "메소드" 라는 개념이 등장한다
  • HTTP 요청시 메소드를 지정하여 리소스와 관련된 행동(CRUD)을 지정할 수 있으며, HTTP메소드는 CRUD행동에 따라 목적에 맞게 써야한다.

(요청) - (적절한메소드)
C : create - POST (추가)
R : read - GET (조회)
U : Update - PUT 또는 PATCH (갱신)
D : Delete - DELETE (삭제)


[URI] (Uniform Resource Identifier)

  • URL 기본요소 + query, bookmark
  • query : 웹 서버에 전달하는 추가 질문
  • URL을 포함하는 상위개념

[IP] (Internet Protocal)

네트워크 상에서 특정 PC를 나타내는 IP주소
IPv4로 할당할 수 있는 PC가 한계를 넘어서게 되면서
나오게 된 것이 IPv6(IP version 6)


[PORT]

IP주소에 진입할 수 있는 정해진 통로

0 ~ 65,535 : 사용 할 수 있는 포트 번호
0 ~ 1024 :주요 통신을 위한 규약에 따라 이미 정해져 있는 포트 번호

잘 알려진 포트번호

  • 22 : SSH
  • 80 : HTTP
  • 443: HTTPS

[DNS] (Domain Name System)

호스트의 도메인 이름을 IP 주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템

네트워크상에 존재하는 모든 PC는 IP주소가 있지만
모든 IP주소가 도메인이름을 가지는 것은 아니다.

ex ) 브라우저의 검색창에 naver.com을 입력한다면, 이 요청은 DNS에서 IP 주소(125.209.222.142)를 찾습니다. 그리고 이 IP 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버가 통신할 수 있도록 합니다.


post-custom-banner

0개의 댓글