👨‍💻
프론트엔드 기술 블로그
  • 프론트엔드 기술 저장소
  • React
    • React Hook
      • useRef
      • useReducer
      • useCallback
      • useMemo
      • useState
      • useEffect
      • useContext
      • Custom Hook
  • Javascript
    • 자바스크립트 기본
      • 데이터타입
      • 배열메소드
      • 타입 및 객체 체크
      • this
        • bind, call, apply
      • 프로토타입
      • 클로저
      • 스코프
      • 함수
      • 호이스팅
    • ECMAScript 6
      • let, const
      • 화살표 함수
      • 구조분해할당
      • Promise
      • 템플릿 문자열 표현식
      • 이터레이션
      • 클래스 (Class)
      • 심볼 (Symbol)
      • 제너레이터
  • 객체지향설계
    • 객체 지향 설계 원칙
      • 단일 책임 원칙
      • 개방 폐쇄 원칙
      • 리스코프 치환 원칙
      • 인터페이스 분리 원칙
      • 의존 역전 원칙
  • 브라우저와 자바스크립트
    • Document Object Model
      • DOM API
      • 이벤트 (Event)
  • Node.js
    • 번들러
      • webpack 설정
    • node.js 버전 관리
  • HTTP
    • HTTP 기본
      • 1. 웹과 네트워크 기본
        • 1.1 웹은 HTTP로 나타낸다.
        • 1.2 HTTP 탄생과 성장
        • 1.3 네트워크 기본 TCP/IP
        • 1.4 HTTP와 관계가 깊은 프로토콜 IP/TCP/DNS
        • 1.5 이름 해결 담당 DNS
        • 1.6 각각과 HTTP와의 관계
        • 1.7 URI와 URL
      • 2. 프로토콜 HTTP
        • 2.1 HTTP는 클라이언트와 서버간에 통신을 한다.
        • 2.2 리퀘스트와 리스폰스를 교환하여 성립
        • 2.3 상태를 유지하지 않는 프로토콜 HTTP
        • 2.4 리퀘스트 URI로 리소스 식별
        • 2.5 HTTP 메소드
        • 2.6 메소드 사용
        • 2.7 지속연결로 접속량 절약
        • 2.8 쿠키를 사용한 상태관리
      • 3. HTTP 정보는 HTTP 메시지에 있다.
        • 3.1 HTTP 메시지
        • 3.2 리퀘스트 메시지와 리스폰스 메시지 구조
        • 3.3 인코딩으로 전송 효율을 높이다.
        • 3.4 여러 데이터를 보내는 멀티파트
        • 3.5 일부분만 받는 레인지 리퀘스트
        • 3.6 최적의 콘텐츠를 돌려주는 콘텐츠 네고시에이션
      • 4. 결과를 전달하는 HTTP 상태코드
        • 4.1 상태코드는 서버로부터 리퀘스트 결과를 전달한다.
        • 4.2 2xx 성공
        • 4.3. 3xx 리다이렉트
        • 4.4 4xx 클라이언트 에러
        • 4.5 5xx 서버 에러
      • 5. HTTP와 연계하는 웹 서버
        • 5.1 1대로 멀티 도메인을 가능하게 하는 가상 호스트
        • 5.2 통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널
      • 7. 웹을 안전하게 HTTPS
        • 7.1 HTTP의 약점
        • 7.2 HTTP+암호화+인증+완전성보호 = HTTPS
  • IDE
    • Webstorm
      • 웹스톰 단축키
      • 웹스톰 소스코드 특정폴더 검색 제외
  • GIT
    • Git 기초 명령어
Powered by GitBook
On this page
  • 1.3.1 TCP/IP는 프로토콜의 집
  • 1.3.2 계층으로 관리하는 TCP/IP
  • 1.3.3 TCP/IP 통신의 흐름

Was this helpful?

  1. HTTP
  2. HTTP 기본
  3. 1. 웹과 네트워크 기본

1.3 네트워크 기본 TCP/IP

인터넷을 포함하여 일반적으로 사용하는 네트워크 TCP/IP라는 프로토콜에서 움직인다. HTTP도 그 중 하나이다.

1.3.1 TCP/IP는 프로토콜의 집

컴퓨터 네트워크 기기가 상호간에 통신하기 위해 같은 방법으로 통신해야한다. 다른 하드웨어 다른 OS로 통신하기 위해서는 규칙이 필요하다.-> 프로토콜

프로토콜은 여러가지가 있다. 케이블규격, IP 주소지정 방법, 떨어진 상대를 찾기 위한 방법 도달 순서, 웹을 표시하기 위한 순서등.

인터넷과 관련된 프로토콜들을 모은 것을 TCP/IP라고 한다.

1.3.2 계층으로 관리하는 TCP/IP

  • 애플리케이션 계층

  • 트랜스포트 계층

  • 데이터링크 계층

  • 링크 계층

각 계층을 계층끼리 연결되어 있는 부분만 결정되어 있어 각 계층의 내부는 자유롭게 설계 할 수 있다.

  • 애플리케이션 계층

유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정한다. FTP, DNS 등도 애플리케이션의 한 가지 이다. HTTP도 이 계층에 포함된다.

  • 트랜스포트 계층

애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공한다. 서로 다른 성질의 UDP, TCP 프로토콜이 있다.

  • 네트워크 계층(인터넷계층)

네트워크 상에서 패킷의 이동을 다룬다. 패킷이란 전송하는 데이터의 최소단위이다. 어떠한 경로를 거쳐 상대의 컴퓨터까지 패킷을 보낼지 결정하기도 한다. 인터넷의 경우라면 상대 컴퓨터에 도달하는 동안에 여러 대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 전송된다. 이러한 여러가지 선택지 중에서 하나의 길을 결정하는 역할을 한다.

  • 데이터 링크 계층

네트워크에 접속하는 하드웨어적인 면을 다룬다. 운영체제가 하드웨어를 제어하기 때문에 디바이스 드라이버랑 네트워크 인터페이스 카드를 포함한다.케이블, 커넥트등 여러가지 물리적으로 보이는 부분도 포함한다.

1.3.3 TCP/IP 통신의 흐름

애플리케이션(HTTP) -> 트랜스포트(TCP) -> 네트워크 (IP) -> 링크 (네트워크)

TCP/IP로 통신을 할 때 계층을 순서대로 거쳐 통신한다. 송신측은 애플리케이션부터 내려가고 수신은 반대이다.

송신준비 : HTTP를 예로 들면 애플리케이션(HTTP) 계층에서 어느 웹페이지를 보고싶다는 HTTP 리퀘스트를 지시한다. 트랜스포트 계층(TCP)에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내번호와 포트 번호를 붙여 네트워크 계층에 전달한다. 네트워크 계층에서는(IP) 수신지 MAC 주소를 추가해서 링크 계층에 전달한다.

수신 : 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달한다. 애플리케이션 계층에 도달하면 HTTP 리퀘스트 내용을 수신할 수 있다.

각 계층을 거칠 때는 각 계층마다 필요한 헤더정보를 붙이고 수신측은 계층을 거칠때 마다 반드시 해당 계층마다 사용한 헤더를 삭제한다. 이렇게 정보를 감싸는 것을 캡슐화라고 한다.

Previous1.2 HTTP 탄생과 성장Next1.4 HTTP와 관계가 깊은 프로토콜 IP/TCP/DNS

Last updated 2 years ago

Was this helpful?