Front-end/JavaScript

자바스크립트 HTTP 통신

NiceKHJ 2024. 8. 23. 10:09

네트워크 기초

1. 네트워크 정의

 

네트워크는 여러 컴퓨터를 통신 회선으로 연결한 것

  • LAN (Local Area Network) : Hub, Switch를 통해 특정 영역에 있는 컴퓨터를 연결
  • WAN (Wide Area Network) : LAN을 Router로 연결한 것으로 인터넷 이라고 부름

2. 네트워크 통신

  • 네트워크에 연결된 컴퓨터 간에 프로그램을 통해 데이터를 주고받는 것을 의미
  • 통신을 위해 송신 측과 수신 측이 동일한 프로토콜을 사용해야 한다.

3. 프로토콜

  • 네트워크 데이터 통신상의 송수신 규칙을 정의한 것
  • 데이터 전송 순서 , 종류, 포맷 등을 규정
  • 예 : TCP , UDP , IP , HTTP , SMTP , POP3 , FTP , TELNET 등. 

 

4. 서버 (Server) & 클라이언트 (Client)

  • 데이터를 주고받는 서비스를 제공하는 프로그램이나 장비를 서버 , 요청하는 것을 클라이언트라고 한다.
  • 클라이언트가 요청하면 서버는 응답을 제공한다.

 

5. IP 주소

  • 네트워크에 연결된 각 컴퓨터에는 고유한 IP 주소가 부여된다.
  • IP 주소는 네트워크 어댑터(LAN 카드) 마다 할당한다
  • IPv4 : 32비트 주소 체계 (예 : 192.168.0.19)
  • IPv6 : 64비트 주소 체계 (예 : fe80::38b6:8fc9:a6eb:2bdc%3)

6. DNS (Domain Name System)

  • 도메인 이름을 IP 주소로 변환해주는 서비스
  • DNS를 통해 프로그램은 상대방의 IP 주소를 검색하여 연결

7. Port 번호

  • 한 컴퓨터에서 다양한 서버 프로그램이 실행될 수 있어 특정 서버와 통신하기 위해 Port 번호가 필요
  • Port 번호 종류 :
    • 잘 알려진 포트 : 0 ~ 1023 (예 : 21(FTP) , 80(HTTP))
    • 등록된 포트 : 1024 ~ 49151
    • 동적 또는 사적 포트 : 49152 ~ 65535

 

네트워크 통신 모델

  1. OSI 7 Layer
    • ISO에서 개발한 개방형 네트워크 통신 모델로 통신 과정을 7단계로 나누어 표준화
  2. TCP / IP 모델
    • OSI 7계층을 5계층으로 간략화한 통신 모델
    • 각 계층별 프로토콜 :
      • Application 계층 : HTTP , FTP , TELNET , SMTP , POP3
      • Transfer 계층 : TCP , UCP 
      • Network 계층 : IP
  3. TCP (Transfer Control Protocol)
    • 연결지향 통신 프로토콜로 데이터 전송 시 순서와 신뢰성을 보장
  4. UDP (User Datagram Protocol)
    • 비연결 지향 통신 프로토콜로 데이터 전송 속도가 빠르지만 신뢰성이 낮음

 

HTTP 프로토콜

 

1. HTTP 프로토콜 개요

  • 웹 브라우저와 웹 서버 간의 데이터를 주고받기 위한 통신 규약
  • 비 연결 지향(Connectionless)과 상태 비유지(Stateless) 특징을 가짐

2. HTTP 요청 / 응답 메시지 구조

  • 요청(Request) : URL , 메소드(GET , POST 등), 헤더 , 바디 포함
  • 응답(Response) : 상태 코드(200 , 404 등),헤더 , 바디 포함

3. HTTP 요청 방식(Method)

  • GET : URL을 이용해 서버의 자원을 요청
  • POST : 요청 바디에 데이터를 포함해 서버로 전송
  • PUT : 서버의 특정 리소스를 수정
  • DELETE : 서버의 특정 리소스를 삭제

4. HTTP 상태 코드

  • 1xx : 처리 중 (Processing)
  • 2xx : 성공 (200 OK)
  • 4xx : 클라이언트 오류 (404 Not Found)
  • 5xx : 서버 오류 (500 Internal Server Error)

 

 

웹 애플리케이션 개발 트렌드

  1. 정적 사이트 (Static Site)
    • 웹 서버에 저장된 HTML 페이지를 웹 브라우저에서 렌더링
  2. 서버 사이드 렌더링 (Server Side Rendering)
    • 서버에서 HTML/CSS 파일을 동적으로 생성해 브라우저로 전송
  3. 싱글 페이지 애플리케이션 (Single Page Application)
    • JavaScript로 서버에 데이터를 요청해 화면의 일부만 갱신하는 방식
  4. 클라이언트 사이드 렌더링 (Client Side Rendering)
    • 브라우저에서 JavaScript 파일을 실행해 화면을 구성