HTTP[네트워크/기초]

전예훈·2023년 3월 30일
0

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

2티어 아키텍처(클라이언트 -서버 아키텍처)

리소스를 사용하는 앱과 리소스가 존재하는곳

앱 = 클라이언트
리소스 = 서버

3티어 아키텍처(클라이언트-서버-데이터베이스)

기존 2티어 아키텍처에 데이터베이스를 추가한 형태
데이터 베이스에 리소스를 저장하고 서버는 리소스를 전달해주는 역할을 한다.
(가장 많이 사용 되고 있는 아키텍처)

프론트엔드 = 클라이언트 ( 웹 앱, 모바일 앱, 데스크탑 앱)

백엔드 = 서버,데이터베이스 (웹 서버, 파일서버, 메일 서버, 데이터베이스 서버)

클라이언트 - 서버 통신 API

프로토콜은 클라이언트와 서버간의 소통 방법이자 통신 규약입니다.
서버와 통신하기 위에서는 다양한 방법이 존재하는데
웹 애플리케이션 아키텍처에서 클라이언트-서버는 서로 HTTP라는 프로토콜을 이용해 소통합니다.

HTTP를 이용해 주고 받는 메세지는 HTTP 메세지 라고합니다.

주요 프로토콜

(osi 7계층)

TCP : HTTP,FTP 통신의 동의 근간이 되는 인터넷 프로토콜

UDP : 단반향으로 작동하고 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 프로 토콜


API

서버에서 클라이언트에게 제공하는 리소스 활용을 위한 인터페이스로, 클라이언트에서는 서버의 구성을 알 수 있고 리소스를 활용할 수 있다.

Read -> GET

Create -> POST

Update -> PUT or PATCH

Delete -> DELETE


브라우저의 작동원리 (보이지 않는 곳)

URL 과 URL

URL
Uniform Resource Locator, 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다. schem, hosts, url-path로 구분한다.

URI
Uniform Resource Identifier, 일반적인 URL 기본요소(sheme, host, url-path)에 더해 query, fragment를 포함한다. 그러므로 URI는 URL을 포함하는 상위 개념이다.

  • fragment : 일종의 북마크 기능을 수행, URL에 fragment(#)와 특정 HTML 요소의 id를 전달하면 해당 요소가 있는 곳으로 스크롤을 이동할 수 있다.

IP와 PORT
IP address
Internet protocol address, 네트워크에 연결된 특정 PC의 주소를 나타내는 체계
인터넷에 연결된 모든 PC는 IP 주소체계를 따르며 닷(.)으로 구분된 IP주소를 가진다.

IPv4
각 덩어리마다 0부터 255까지 나타낼 수 있어 2^(32)인 약 43억 개의 IP주소를 표현할 수 있다. (ex. 123.45.67.89)

IPv6
IPv4로 할당할 수 있는 PC가 한계를 넘어서게 되어 도입되었으며 2^(128)개의 IP주소를 표현할 수 있다. (ex. 2001:db8::ff00:42:8329)

터미널에서 명령어 nslookup을 사용해 IP 주소를 확인할 수 있다.

용도가 정해져 있는 기억해야 되는 주소

localhost,127.0.0.1 : 현재 사용중인 로컬 pc
0.0.0.0, 255.255.255.255 : 로컬 네트워크에 접속된 모든 장치오 ㅏ소통하는 주소, 서버 에서 접근 가능 ip주소를 broadcast address 로 지정하면 모든 기기에서 서버로 접근 할 수 있다.


PORT
IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)
(ex. React 실행화면에서의 주소, localhost:3000 에서 localhost가 IP주소, :3000이 PORT이다)
이미 사용 중인 포트는 중복해서 사용할 수 없다. 리액트의 경우 3000번 포트를 이미 사용 중이라면 3001번 포트 번호, 3001번도 사용 중이라면 3002번 포트를 통해 리액트를 실행한다.
포트 번호는 0~65535까지 사용할 수 있다. 그중에서 0~1024번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다.

기억해야 할 포트 번호 (해당 포트 번호는 생략가능)

22 : SSH
80 : HTTP
443 : HTTPS
(ex. https://www.naver.com은 :443이라는 포트가 생략돼있다.)
이미 정해진 포트 번호라도, 필요에 따라 자유롭게 사용할 수 있다. 잘 알려진 포트의 경우 URI 등에 명시하지 않지만, 그 외의 잘 알려지지 않은 포트(3000과 같은 임시 포트)는 반드시 포함해야 한다.

profile
더욱더 QA스럽게!

0개의 댓글