본문 바로가기
Backend boot camp/Session2

Network

by orioncsy 2022. 9. 30.

네트워크 구성 기술

Native-application VS Web application

Native-application

  • 특정 기기에 설치해 동작하는 애플리케이션
  • 장점
    • 웹 앱보다 빠르다
    • 기기의 리소스 접근 용이
    • 인터넷 없이 사용 가능
    • 웹 앱에 비해 보안 안전
  • 단점
    • 웹 앱보다 개발비용이 크다
    • 업데이트 불편
    • 앱스토어 승인 절차 복잡

Web application

  • 웹 브라우저를 통해 접근하는 애플리케이션
  • 장점
    • 브라우저를 거쳐 설치 과정이 없다
    • 업데이트 용이
    • 앱에 비해 개발 용이
    • 앱스토어 승인 불필요
  • 단점
    • 인터넷 접속 필수
    • 앱에 비해 느리다
    • 앱스토어를 거치지 않기 때문에 사용자 접근성이 떨어진다
    • 보안 위험

TCP/IP

LAN & WAN

  • LAN(Local Area Network)
    • 좁은 범위에서 연결된 네트워크
  • WAN(Wide Area Network)
    • 여러 LAN이 모인 보다 큰 네트워크

Internetworking

  • Internetwork : network 끼리 연결하는 network
  • 연결 방식 : 하나의 네트워크 확장, 네트워크 간 연결
  • 특징 : 일부가 통신이 끊겨도 영향을 주지 않고 개별 네트워크 관리 용이

Protocol

  • 네트워크 통신 규약

TCP/IP

  • Internet Protocol Suite : 인터넷을 통한 정보 교환의 통신 규약
  • 대표적인 표준 Internet Protocol Suite
    • TCP(Transmission Control Protocol)/IP(Internet protocol)

Layer Name Protocol Work

5 layer Application layer HTTP, DNS, FTP 애플리케이션에 맞게 통신
4 layer Transmission layer TCP,UDP Network 층과 통신
3 layer Network layer IP, ICMP,ARP,RARP 네트워크 주소 기반으로 데이터 전송
2 layer Data-Link layer Ethernet, wifi 물리 층과 네트워크 연결
1 layer Physical layer   물리적 계층

Address

  • IP address
    • 컴퓨터를 식별하기 위한 주소
    • 컴퓨터, 휴대기기, 서버, 인터넷 라우터와 같은 네트워크 장비에 IP 주소 할당
    • Private address VS Public address
      • Private : LAN 내부 사용
      • Public : LAN 외부 사용
    • IPv4 : IP address version 4
      • 4Byte 형태로 1Byte당.(dot)으로 구분
    • nslookup [웹 주소]를 통해 ip 주소 확인 가능
    • localhost(127.0.0.1) : 사용 중인 로컬 PC
    • broadcast address(0.0.0.0, 255.255.255.255) : 로컬 네트워크와 연결된 모든 장치와 소통하는 주소
    • IPv6 : IP 주소를 2^(128) 개까지 저장
  • MAC address
    • 네트워크 장비에 초기 할당되는 고유 시리얼
    • Ethernet(Data link layer)에서 MAC 주소 사용
    • ARP(Address Resolution Protocol)
      • 같은 LAN 안에서 MAC 주소 파악을 위해 broadcast를 통해 패킷 전송
      • 해당 IP를 가진 컴퓨터가 자신의 MAC 주소를 response
  • packet
    • 기기 간 통신 종류
      • Circuit switching
        • 통신 회선을 기술하여 데이터 교환
        • 음성 전화에 사용
        • 1:1 데이터 교환
      • packet switching
        • packet을 통하여 데이터 교환
        • packet : header, payload로 구성
        • 여러 회선으로 통신

IP

  • IP address 구조
    • IP address 구조 : 4개의 1byte(8bit) 형태로 구성
    • Subnet mask : network part 구분하기 위한 것
      • network part, host part로 구성
      • subnet mask : network part가 모두 1로 설정된 주소
    • IP address 할당
      • network 부를 고정시키고 이후 0에서 255를 제외한 번호로 할당
      • 네트워크 주소는 host part가 모두 0
      • 브로드캐스트 주소는 host part가 모두 1
  • 한계
    • 비연결성, 비신뢰성
    • 패킷을 받는 대상에 문제가 생겨도 상태 파악이 불가
    • 한계 극복을 위해 TCP/IP 사용

TCP

TCP/IP 5 계층 모델

Layer Name Protocol Work

5 layer Application layer HTTP, DNS, FTP 애플리케이션에 맞게 통신
4 layer Transmission layer TCP,UDP Network 층과 통신
3 layer Network layer IP, ICMP,ARP,RARP 네트워크 주소 기반으로 데이터 전송
2 layer Data-Link layer Ethernet, wifi 물리 층과 네트워크 연결
1 layer Physical layer   물리적 계층
  • TCP는 통신 신뢰성을 높이고 UDP는 높은 속도 제공

TCP 3-way-handshaking

  1. SYN(Synchronize Sequence Number) : 송신자가 수신자에게 연결을 위한 segment 전송
  2. SYN/ACK(Ackknowledgement) : 수신자가 SYN을 받고 응답(ACK)을 보낸다
  3. ACK : 송신자가 받은 ACK를 다시 수신자에게 전송하여 연결을 확인

UDP 장점

  • 실시간 전송이 중요한 앱에서 latency가 큰 TCP에 비해 약간의 손실을 감수
  • 빠른 반응속도와 신뢰성을 위한 파라미터가 불필요

TCP & UDP 사용 예시

  • 비디오 스트리밍은 데이터가 끊기지 않도록 해야 하기 때문에 신뢰성 손실을 감수하고 UDP 사용
  • 전쟁이 나는 상황에도 3-way-handshaking이라는 데이트 송수신의 확인을 받는 TCP를 사용하여 신뢰성 보장
  • dns는 tcp에서 작동하면 동작 속도가 느려지고 연결 정보가 있으면 많은 클라이언트를 수용하기 힘들기 때문에 udp를 사용

Port

  • TCP/UDP에서 사용하는 애플리케이션을 특정하는 번호
    • ip주소만으로 어떤 애플리케이션에 데이터 전송하는지 확인 불가
  • Port 종류 well-known port 0-1023 시스템 사용 포트
    Registered port 1024-49151 특정 앱이나 프로토콜에서 사용
    Dynamic port 49152-65535 앱에서 임시 사용 번호
  • Well-known port
    • HTTP(80), HTTPS(443), POP3(110), SMTP(25), SSH(22), DNS(53), NTP(123)
  • Socket
    • port는 많은 데이터를 socket을 통해 처리 가능
    • local IP, port, remote IP, remote port로 구성

URL

  • Uniform Resource Locator : 웹에서 자원의 위치를 나타낸 정보

scheme file://, http://, https:// 프로토콜

hosts 127.0.0.1, www.naver.com 웹 서버 이름이나 주소
port :80, :443, :300 사용하는 port
url-path /Users/username/Desktop 웹 서버에서 지정한 자원의 경로와 파일명
query q=naver 웹 서버에 추가 요청

Domain name

  • hosts의 IP 주소를 domain이라는 이름으로 변환
  • 관리
    • ICANN : 전체 도메인 관리 비영리 단체
    • registry : 도메인 관리 기관(domain db 관리)
    • registar : 중개 등록 업체(registry에 도메인 등록 가능)
  • 종류
    • gTLD(generic Top Level Domain) - .com, .net, .org, .edu, .gov, .int, .mil, .biz, .name, .info
    • ccTLD(country code Top Level Domain) - .kr, .us, .jp
      • .kr(한국인터넷진흥원 - registry, 가비아, 후이즈 - registar)
  • DNS
    • 모든 도메인 이름은 일정 기간 대여
    • 도메인 이름을 IP주소로 변환하는 DNS(Domain Name System)
  • DNS 작동 원리
    • 도메인 주소는 오른쪽 주소부터 왼쪽으로 top level에서 다음 단계로 사용
    • 서브 도메인은 www, m으로 가장 왼쪽에 존재
      • 서브 도메인(호스트 이름)은 특정 부분을 나눠서 보여줘야 하는 경우로 사용
    • Domain name server(zone)
      • root name server - 2개 이상의 서버가 하나의 도메인 네임 담당
      • TLD name server - 권한 있는 네임 서버의 주소를 알고 있다
      • authorized name server - 도메인 IP 주소 및 도메인 정보 관리
    • DNS lookup
      • resolver에게 IP 주소 요청
      • resolver 캐시 파일 찾는다
      • 루트, 탑 레벨, 권한 있는 도메인 서버에 차례로 쿼리 진행
      • IP 주소를 기록하고 브라우저에게 전달
    • zone file
      • name, record class, TTL, record type, record data
      • 이 내용을 바탕으로 resolver가 IP나 쿼리를 진행
      • 구성
        • record : domain name, sub domain name 저장
        • record class : 네트워크 타입
        • TTL : Time To Live 레코드 저장 시간
        • record type : 반환될 데이터 타입
          • A - IPv4 / AAAA - IPv6
          • CNAME - 도메인 주소
          • NS - 도메인 네임 서버들의 주소
          • SOA - 도메인 주 서버 정보

웹 구성 기술

Web 구성

Web

  • hypertext 구성 : 다른 문서 간의 정보를 연관 지어 참조하는 문서
  • 운영체제나 앱에 관계없이 동일한 결과를 출력하기 위해 HTML 등장

Client-Server Architecture(2-tier Architecture)

  • Client - 리소스를 사용하는 역할
  • Server - 리소스를 제공하는 역할
  • Client가 Server에게 리소스를 요청하고 server가 응답하는 구조
  • 3-tier architecture
    • DB에 리소스를 저장하는 공간을 별도로 만든 구조

Web application Architecture

Web application

  • 데스크톱 애플리케이션처럼 상호작용 가능
  • 특정 기능 포함
  • 콘텐츠 관리 시스템과 함께 동작

web application Architecture

  • 애플리케이션의 다양한 요소들이 상호작용하는 구조
  • 신뢰성, 확장성, 보안성, 견고성

Web application 요청 흐름

Work flow

  • 브라우저에 url 입력
  • 브라우저가 DNS 서버에 요청
  • IP주소를 받아 HTTPS에 요청
  • 웹 서버에 요청 도착
  • 웹 서버는 저장소에 데이터 요청
  • 데이터 로딩하는 과정에 비즈니스 로직 사용
  • 비지니스 로직에서 데이터 처리가 되고 브라우저에 응답
  • 응답을 web page에 출력

Client side VS Server side

  • client side
    • front-end 개발
    • 브라우저 기능을 개발
    • HTML, CSS, JavaScript를 사용해서 개발
    • HTTP 요청
  • server side
    • back-end 개발
    • 서버 기능을 개발
    • Java, Python, JavaScript, C#, PHP, Ruby on Rails
    • HTTP 응답

Web Application elements

  • User Interface elements
    • 화면 출력, 로그, 알림, 시스템 통계, 환경 설정 같은 기능 외적 부분
  • Structure elements
    • 웹 브라우저나 클라이언트, 서버, DB와 같은 기능적인 부분
  • 3-Tier Architecture
    • Presentation Layer - 유저와 브라우저에 집적 접촉(web server)
    • Application Layer - 유저의 요청을 브라우저로 받아 처리(business logic)
    • Data Access Layer - 데이터 저장소에 접근하여 데이터를 불러오거나 저장(persistence layer)
  • 이외의 계층
    • cross-cutting - 보안 통신 운영관리
    • Third-party integrations - 제3의 API 서비스 이용

Web application implement

Single Page Application

  • 페이지를 새로 불러오지 않고 현재 페이지에서 콘텐츠 최신화
  • 필수 요소만 요청하고 새로 고침 방지해 유저 경험 극대화
  • AJAX(Asynchronous JavaScript), XML 사용

Microservice Architecture

  • 작고 가벼운 한 가지 기능에 초점을 맞춘 웹 앱
  • 요소들이 상호적으로 설계되지 않고 개발 후 같은 언어를 사용할 필요 없다
  • 개발 속도와 생산성 향상
  • 관리가 용이
  • 작은 팀 단위로 관리할 수 있음
  • 코드 베이스의 규모가 작다
  • 기술들을 혼합할 수 있다
  • 문제가 발생할 경우 다른 전체 앱에 영향을 주지 않는다
  • 확장성 용이
  • 데이터를 독립적으로 관리 가능

Serverless Architecture

  • 서버와 기능들을 외부 클라우드 서비스 제공자에게 위탁
  • 관리할 서버가 없어 비용 절감
  • 간편한 확장성
  • 간단한 백엔드 코드
  • 시간 단축

구현 기술

  • HTTP
    • 클라이언트와 서버 간 통신을 담당
    • HTTP 요청 - 메서드 이름, 처리 대상
    • HTTP 응답 - 상태 코드, 처리 결과
  • Cookie
    • 유저의 정보를 클라이언트에 보관하고 다음 접속 때 서버로 보내 서버가 식별 가능하게 한다
  • Session
    • 서버에 Session- Id라는 고유 아이디 할당해 유저 식별
    • 세션 정보는 쿠키에서 관리, 매칭 되는 값은 서버 측에서 관리

사용자 인증

  • 유저를 식별할 수 있는 ID와 password
  • 웹에서의 인증은 개인정보를 바탕
  • 다요소 인증(MFA) 요구
  • 은행 OTP, 하드웨어 토큰
  • OAuth 로그인 - 제3의 서비스에 위탁

SSR VS CSR

SSR(Sercer Side Rendering)

  • Javascript가 서버에서 렌더링
  • 서버에서 렌더링하고 브라우저로 보내는 방식
  • 다른 경로로 이동할 때마다 서버가 작업을 반복

CSR(Client Side Rendering)

  • Javascript가 클라이언트에서 렌더링
  • 서버가 웹페이지의 골격인 단일 페이지를 클라이언트에게 보냄
  • javaScript 파일을 클라이언트에게 보냄
  • DB에 있는 데이터를 API를 사용해 가져와서 처리
  • 처음 서버로 받은 파일로 경로에 따라 페이지를 다시 렌더링

차이

  • SSR은 서버에서 CSR은 브라우저에서 페이지 렌더링
  • 브라우저는 페이지 새로고침 하지 않고 동적으로 라우팅

SSR 사용 예시

  • SEO(Search Engine Optimization) 이 우선인 경우
  • 첫 화면 렌더링이 빨라야 하는 경우에 파일 용량이 적은 SSR 적합
  • 사용자와 상호작용이 적은 경우

CSR 사용 예시

  • SEO가 우선이 아닌 경우
  • 사용자와 상호작용이 많은 경우
  • 웹 앱 제작의 경우

SSR 단점

  • 자원이 서버에 집중되어 유지 비용 높음
  • 일부 third-party javascript library가 적용 불가

CSR 장점

  • 느린 렌더링으로 사용자 경험 저하
  • search engine bots와 상성 안 좋음

사례

  • SSR
    • 네이버 블로그(상호작용이 많지 않고, 검색엔진에 노출 유리)
    • The NewYork Times(기사 노출 유리, 로딩 속도 빠름)
  • CSR
    • 아고다 및 예약 사이트(사용자 경험에 유리)

CORS(Cross-Origin Resource Sharing)

개념

  • 처음 전송되는 리소스 도메인과 다른 도메인으로부터 리소스 요청되는 경우 cross-origin HTTP 요청에 의해 요청

특징

  • 보안 상의 이유로 XMLHttpRequest와 Fetch API와 같은 origin 정책을 가진다
  • simple requests
    • CORS preflight를 발생시키지 않는다
    • GET, HEAD, POST 중 하나의 경우
    • content type
      • application/x-www-form-urlencoded, multipart/form-data, text/plain
  • preflighted requests
    • PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH 중 하나 사용
    • content type
      • application/x-www-form-urlencoded, multipart/form-data, text/plain 이외의 type
  • requests with credentials
    • cookie에 있는 정보를 같이 보낼 것인지에 대한 요청

AJAX - SPA(Single Page Application) 구현

AJAX

  • Asynchronous JavaScript And XMLHttpRequest
  • JavaScript, DOM, Fetch, XMLHttpRequest, HTML 기술을 사용하는 웹 개발 기법
  • 웹 페이지에 필요한 부분만 서버로부터 비동기적으로 받아 화면 구상
  • 구글 검색창, 원티드의 무한 스크롤, 페이스북 메시지, 네이버 뉴스 탭

JavaScript, DOM, Fetch

  • Fetch
    • 페이지를 이동하지 않아도 서버로부터 데이터를 받아오는 web API
    • 페이지를 작업하는 중에 응답을 동시에 기다리는 비동기적 방식
    • 기존 XHR(XMLHttpRequest)와 다르게 JSON을 사용
    • promise 지원 등으로 자주 사용
  • DOM
    • fetch를 통해 필요한 데이터만 가져와 기존 페이지에서 필요한 부분만 변경

장점

  • 서버에서 HTML을 완성하지 않아도 웹페이지 구성 가능
  • XHR이 표준화되어 브라우저 상관없이 사용
  • 유저 중심 앱 개발 AJAX는 필요한 부분만 렌더링 가능
  • 데이터를 텍스트 형태(JSON, XML)로 보내기 때문에 대역폭(한 번에 보낼 수 있는 데이터 크기)이 작아졌다

단점

  • HTML 파일은 뼈대만 있고 일부분을 서버로부터 데이터를 가져오는 형태라 SEO에 불리
  • 이전 상태를 기억하지 못하기 때문에 뒤로 가기를 구현하기 위해 별도 History API를 사용

HTTP

HTTP Messages

  • HTTP message로 클라이언트와 서버가 데이터 교환
  • Stateless : 무상태성(상태를 유지하지 않는 특성)

구조

  • Start line : 요청이나 응답 상태
  • HTTP header : 요청 지정, 본문을 설명하는 헤더 집합
  • empty line : 헤더와 본문을 구분하는 빈 줄
  • body : 요청이나 응답 관련된 데이터나 문서
  • head : start line + HTTP headers / payload : body

Request

  • start line
    • HTTP method : 수행할 작업(GET, PUT, POST)이나 메서드(HEAD, OPTIONS)
    • 요청 컨텍스트 : 요청 대상(URL이나 URI), 프로토콜, 포트, 도메인
      • origin : ?와 쿼리 문자열이 붙는 절대 경로
      • absolute : URL 형식
      • authority : 도메인 이름과 포트 번호 URL의 authority component
      • asterisk : OPTIONS와 *로 서버 전체 표현
    • HTTP 버전
  • Headers
    • header name : value 형태
    • General headers - 메시지 전체에 적용되는 헤더
    • request headers - fetch를 통해 가져올 리소스나 클라이언트 정보
    • Entity headers - body에 담긴 리소스 정보(콘텐츠 길이, MIME type)
  • body
    • GET, HEAD, DELETE, OPTIONS 등과 같이 서버에 리소스 요청하는 경우 필요 없음
    • Single-resource bodies : 헤더 두 개(content-type, content-length)로 정의된 파일
    • Multiple-resource bodies : 여러 파트로 구성된 본문

Responses

  • status line
    • 프로토콜 버전(HTTP/1.1)
    • status code - 요청 결과
    • status text - 상태 코드에 대한 설명
  • Headers
    • request와 마찬가지로 general, request, representation header로 존재
  • body
    • Single-resource bodies :
      • 길이가 알려진 헤더 두 개로 정의된 파일
      • 길이를 모르는 파일은 transfer-encoding이 chunked로 설정
    • Multiple-resource bodies : 서로 다른 정보를 담고 있는 body

Stateless

  • HTTP로 클라이언트와 서버가 데이터를 주고받을 때 상태를 기록하지 않는다
  • cookie, session, API를 통해 상태를 저장

HTTP를 이용한 클라이언트-서버 통신과 API

  • HTTP라는 프로토콜을 이용해 데이터 통신
  • 주요 프로토콜
    • HTTP - 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
    • HTTPS - HTTP에서 보안이 강화된 프로토콜
    • FTP - 파일 전송 프로토콜
    • SMTP - 메일 전송 프로토콜
    • SSH - 원격 접속 프로토콜
    • RDP - WINDOW 원격 컴퓨터 접속 프로토콜
    • WebSocket - 실시간 통신, push 지원 프로토콜
    • TCP - HTTP, FTP 통신의 근원이 되는 인터넷 프로토콜
    • UDP - 신뢰성이 낮지만 빠른 프로토콜
  • API(Application Programming Interface)
    • 서버가 클라이언트에게 리소스를 활용할 수 있도록 제공
    • 리소스를 전달하기 위한 메뉴판
    • 클라이언트가 요청을 할 때 사용
    • GET- 조회, POST - 추가, PUT(PATCH) - 갱신, DELETE - 삭제

Chrome browser error

Error message content

Aw, Snap! 페이지 로드 실패
ERR_NAME_NOT_RESOLVED 호스트 이름 존재하지 않음
ERR_INTERNET_DISCONNECTED 인터넷 연결 실패
ERR_CONNECTION_TIMED_OUTERR_TIMED_OUT 페이지 연결 시간 초과
ERR_CONNECTION_RESET 접속 방해 요소 발생
ERR_NETWORK_CHANGED 네트워크 연결 해제 및 새로운 네트워크 연결
ERR_CONNECTION_REFUSED 웹페이지에서 연결 허용 안함
ERR_CACHE_MISS 이전 정보를 다시 제출할 것을 요청 받음
ERR_EMPTY_RESPONSE 데이터가 전송되지 않음
ERR_SSL_PROTOCOL_ERROR chrome에서 데이터 해석 불가
ERR_BAD_SSL_CLIENT_AUTH_CERT 클라이언트 인증서에 오류

MDN - HTTP Request Method

GET - 특정 리소스의 표시 요청

HEAD - GET과 같은 요청이지만 응답 본문 요구하지 않음

POST - 특정 리소스의 ENTITY를 제출

PUT - 목적 리소스의 모든 현재 표시를 요청 payload로 변경

DELETE - 특정 리소스를 삭제

CONNECT - 목적 리소스로 인식되는 서버로 연결을 설정

OPTIONS - 목적 리소스의 통신 설정

TRACE(en-US) - 목적 리소스 경로를 따라 메시지 loop-back TEST

PATCH - 리소스의 부분만 수정

MDN - HTTP Status code

Code Text Content

100 continue 지금까지 상태 양호
101 Switching Protocol 클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답(프로토콜 변경 공지)
102 Processing 요청을 수신하고 처리 중
103 Early Hints 서버 응답 준비 중에 user agent가 사전 로딩 시작
200 OK 요청 성공
201 Created 요청 성공, 새로운 리소스 생성
202 Accepted 요청 수신, 대응 불가
203 None-Authoritative Information 오리진 서버와 일치하지 않지만 로컬이나 서드 파티 복사본에서 모아졌음
204 No Content 요청에 대해서 보내줄 내용 없음
205 Reset Content user agent에게 요청 문서 뷰를 리셋 공지
206 Partial Content 스트림 분할 다운로드 위해 전송
207 Multi-Status 여러 상태 코드인 경우
208 Multi-Status DAV에서 사용, 복수의 내부 맴버를 반복 열거 피하기 위해서 사용
266 IM Used 서버가 GET 요청 수행하고 하나 이상의 인스턴스 조작이 적용되었음
300 Multiple Choice 요청에 대한 하나 이상의 응답
301 Moved Permanently URI 변경
302 Found URI 일시적 변경
303 See Other 다른 URI에서 GET요청 해야할 때
304 Not Modified 응답이 수정되지 않음
305 Use Proxy 응답은 반드시 proxy로 접속
306 unused 더 이상 사용되지 않는다
307 Temporary Redirect 리소스가 다른 URI에 있음
308 Permanent Redirect 리소스가 다른 URI에 영구 존재
400 Bad Request 잘못된 문법으로 요청함
401 Unauthorized 비인증
402 Payment Required 디지털 결제 요청
403 Forbidden 접근 권한을 가지지 않음
404 Not Found 리소스를 찾을 수 없음
405 Method Not Allowed 메소드 사용 불가
406 Not Acceptable 컨텐츠 찾을 수 없을 때
407 Proxy Authentication Required 프록시에 의한 인증 필요
408 Request Timeout 요청 시간 초과
409 Conflict 서버와 충돌
410 Gone 콘텐츠 영구 삭제됨
411 Length Required content-Length 헤더가 없어 요청 거절
412 Precondition Failed 헤더 조건이 서버 조건에 적절하지 않음
413 Payload Too Large 요청 entity가 서버 정의보다 클 경우
414 URI Too Long URI 길이가 길다
415 Unsupported Media Type 서버에서 지원하지 않는 미디어 포맷
416 Requested Range Not Satisfiable Range 헤더에 요청한 지정 범위 만족 불가
417 Expectation Failed Expect 요청 헤더 필드의 예상이 적당하지 않음
418 I’m a teapot 커피를 찻 주전자에 끓이는 것 거절
421 Misdirected Request 서버로 유도된 요청은 응답 생성 불가
422 Unprocessable Entity 문법 오류
423 Locked 리소스 접근 잠김
424 Failed Dependency 이전 요청도 실패해서 현재 요청 실패
426 Upgrade Required 다른 프로토콜로 업그레이드하면 처리 가능
428 Precondition Required 요청이 조건적이여야 함
429 Too Many Requests 너무 많은 요청
431 Request Header Fields Too Large 요청 헤더 필드 너무 크다
451 Unavailable For Legal Reasons 불법적 리소스
500 Internal Server Error 서버가 처리 방법 모름
501 Not Implemented 서버에서 지원 불가
502 Bad Gateway 게이트웨이로 잘못된 응답 수신
503 Service Unavailable 서버가 요청 처리 준비 안됨
504 Gateway Timeout 게이트웨이로 응답 못 받을 때
505 HTTP Version Not Supported HTTP 버전이 지원 안됨
506 Variant Also Negotiates 서버에 내부 구성 오류(컨텐츠 협상이 순환 참조로 이어짐)
507 Insufficient Storage 서버에 내부 구성 오류(협상 프로세스 적절한 종료 시점이 아님)
508 Loop Detected 무한 루프
510 Not Extended 추가 확장 필요
511 Network Authentication Required 네트워크 엑세스를 위해 인증 필요

'Backend boot camp > Session2' 카테고리의 다른 글

Relational DataBase  (0) 2022.10.03
REST API  (0) 2022.10.03
[알고리즘] 알고리즘  (0) 2022.09.25
[자료구조/알고리즘] 자료구조  (0) 2022.09.25
[자료구조/알고리즘] 재귀  (0) 2022.09.20