기본 개념

  • 네트워크: 데이터를 교환하고 자원을 공유하기위한 목적으로 상호 연결된 두 대 이상의 장치들의 그룹
  • LAN(Local Area Network): 근거리 통신망. 가정이나 중소기업 등의 가까운 지역을 연결시켜주는 네트워크
  • 네트워크의 물리적인 규모에 따라 PAN, LAN, MAN, WAN 등으로 분류된다.

    network

  • 인터넷(Internet): 컴퓨터 네트워크들을 서로 연결 지어주는 범지구적 네트워크 (= Inter-Network = 컴퓨터 네트워크들의 네트워크). 인터넷은 WAN을 구현한 주요 예시다. 우리는 이 인터넷이라는 네트워크를 통해 웹, 이메일, FTP 등의 서비스를 이용할 수 있다.
  • 웹(World Wide Web): 이전에는 서로 다른 컴퓨터에 서로 다른 형식으로 정보가 저장되어 있다. 따라서 새로운 형식의 내용이라면 어떻게 구성되어 있는지 매번 학습해야 했다. 이를 해결하기위해 그당시 HyperText 같은 새롭게 떠오르는 컴퓨터 기술들을 활용하여 해결한 것이 웹이다.

웹의 요청과 응답 과정

  • 서버와 클라이언트
    • 서버(Server): 정보, 자원, 서비스를 제공하는 측. 요청을 받고 응답하는 측. (ex. 웹 서버)
    • 클라이언트(Client): 클라이언트는 정보, 자원, 서비스를 사용하는 측. 요청을 보내는 측이다. (ex. 웹 브라우저)
  • HTTP (HyperText Transfer Protocol): 웹 요청과 응답에 관한 클라이언트와 서버사이의 규약(약속)
  • HTTP의 특징
    • 비연결성 (Connectionless): 클라이언트의 요청에 대해 서버가 응답을 마치면 연결을 끊어버린다 다음 요청은 새로운 연결을 통해 이루어진다.

      단점: 매번 모든 요청에 대해서 새로운 연결/해제 과정을 거치므로 네트워크 비용측면에서 비효율적이다. 보완책: HTTP/1.1 Keep-Alive 서버와 클라이언트 사이에서 통신이 없어도 지정된 시간동안 연결을 유지하는 기능

    • 무상태 (Stateless): 서버와 클라이언트는 하나의 요청이 진행되는 동안만 서로를 인지

      단점: 클라이언트 인증(로그인)이 필요한 서비스에서 불편함

      보완책: 쿠키, 세션, 토큰 (OAuth,JWT) - 상태를 기억하기 위한 기능들

  • HTTP Status Code (응답 코드, 상태 코드): 클라이언트의 요청에 대해서 서버는 요청에 대한 처리 상태를 숫자 코드로 반환 ex. 200 (서버가 요청을 제대로 처리했을 때), 404 (요청한 페이지 찾을 수 없음)
    • 1xx: (정보) 요청을 받았으며 프로세스를 계속한다
    • 2xx: (성공) 요청을 성공적으로 받았으며 인식해서 처리했다
    • 3xx: (리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요하다
    • 4xx: (클라이언트 에러) 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
    • 5xx: (서버 에러) 서버가 명백히 유효한 요청에 대해 충족을 실패했다
  • HTTP Method: 클라이언트가 요청을 보낼 때 해당 요청의 목적이 뭔지 MTTP Method를 통해 명시
    • GET - 서버의 리소스를 조회하고자 할 때
    • POST - 서버에 리소스를 생성하고자 할 떄
    • PUT - 서버의 리소스를 수정할 때
    • DELETE - 서버의 리소스를 삭제할 때
    • HEAD - GET과 동일하나, 서버에서 Body를 빼고 HEAD로만 응답 (리소스 확인의 용도)
    • PATCH - 리소스의 부분만을 수정할 때
    • OPTIONS - 지원 가능한 메서드 종류를 알아볼 때
    • TRACE - 리소스의 경로를 따라 메시지 loop-back 테스트를 실행
    • CONNECT - 리소스로 식별되는 서버로의 터널을 맺을 때
  • HTTP Request Headers의 예시
    • accept: 어떤 타입의 응답 컨텐츠를 수용할 수 있는지
    • user-agent: 어떤 운영체제 어떤 브라우저 인지
    • cookie: 상태 기억을 위한 정보
  • HTTP Request Payload: POST와 PUT 같은 요청을 보낼 때 데이터를 함께 보내는 내용.

참고 자료

https://www.ionos.com/digitalguide/server/know-how/what-is-a-network/

http://www.vidyagyaan.com/computer-knowledge/types-of-computer-network-lan-man-and-wan/

태그:

카테고리:

업데이트:

댓글남기기