본문 바로가기

cs/컴퓨터 네트워크10

OSI 7계층, TCP/IP 5계층 0. 개요 이번 게시물에서는 기기간에 인터넷으로 정보를 전달하는 방법을 이해하기 위한 첫 번째 단계인 OSI 7계층과 현재 표준으로 사용하고 있는 TCP/IP 5계층에 대해 정리해 볼 것이다. 1. Circuit Switching Network, Packet Switching Network OSI Model을 소개하기에 앞서, 중앙 제어 전달 방식과 목적지 주소 전달 방식에 대해 알아보자. - Circuit Switiching Network (중앙 제어 전달 방식) Circuit Switching은 A에서 B로 데이터를 보낼 경우, 하나의 회선을 부여한다. 해당 통신이 진행되는 동안, 이 회선은 A, B를 제외하고 다른 곳에서 접근이 불가능해진다. 데이터가 분리되지 않으며, 다른 곳을 경유하지 않기 때문.. 2023. 11. 9.
HTTP 캐시와 조건부 요청, 프록시 캐시 0. 개요 이번 게시물에서는 HTTP 캐시와 조건부 요청, 프록시 캐시에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. 캐시를 사용하지 않을 경우 우선 캐시가 무엇인지, 그리고 왜 사용되는지를 알기 위해서 우선 캐시를 사용하지 않을 경우 어떻게 되는지에 대해 알아보자. - 첫번째 요청 서버에서 star.jpg라는 이미지를 받기 위해 요청하고, 해당 이미지가 담긴 HTTP 메시지를 응답받는다. - 두번째 요청 한번 더 같은 이미지 요청을 하면, 다시 해당 이미지가 담긴 HTTP 메시지를 응답받는다. - 이렇게 데이터가 변경되지 않아도, 클라이언트는 네트워크를 통해서 데이터를 다운로드 받아야한다. -> 인터넷 네트워크는 느리고 비싸며, 브라우.. 2023. 1. 13.
HTTP 쿠키 0. 개요 이번 게시물에서는 HTTP 쿠키에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. 쿠키란? HTTP 쿠키란 서버가 클라이언트의 웹 브라우저에 전송하는 작은 데이터 조각이다. 이 쿠키로 사용자의 로그인 세션 관리, 광고 정보 트래킹 등을 관리하게 된다. 쿠키 정보는 항상 서버에 전송되기 때문에, 최소한의 정보만 사용해야 한다.(세션 id, 인증 토큰, ...) 참고로 보안에 민감한 데이터(주민번호, 신용카드 번호 등)은 저장하면 안된다! 쿠키를 사용하는 이유는 HTTP의 특징중 Stateless와 관련이 있는데, 아래에서 한번 살펴보자. 2. 쿠키 사용 이유 - 쿠키 미사용 - 먼저 클라이언트가 로그인을 하고, 그 후 시작 페이지로.. 2023. 1. 13.
HTTP 헤더 0. 개요 이번 게시물에서는 HTTP 헤더 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. HTTP 헤더 HTTP 헤더는 HTTP 전송에 필요한 부가정보를 저장하는 곳이다. 메시지 바디의 내용 및 크기, 압축, 인증, 요청 클라이언트 정보 등등.. 수많은 표준 헤더가 존재한다. 이 게시물에서는 주로 사용하는 HTTP 헤더들에 대해 적어볼 예정이다. 우선 모든 HTTP 헤더의 양식은 아래와 같다. field-name ":" OWS field-value OWS (OWS는 띄어쓰기 허용이라는 뜻) + field-name은 대소문자를 구분하지 않는다. 2. 표현(Representation) HTTP표준이 RFC7230~7235로 변함에 따라, 기존.. 2023. 1. 13.
HTTP 상태코드 0. 개요 이번 게시물에서는 HTTP 상태코드 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. 상태코드 HTTP 응답 메시지 중 시작라인 (start-line)에 오는 코드로서, 클라이언트가 보낸 요청의 처리 상태를 알려주는 기능을 뜻한다. 그 종류로는 - 1xx (Informational): 요청이 수신되어 처리중 - 2xx (Successful): 요청 정상 처리 - 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 - 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없는 경우 - 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 여기서 .. 2023. 1. 12.
HTTP API 설계하는 법 0. 개요 이번 게시물에서는 HTTP API를 설계하는 법에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. 클라이언트에서 서버로 데이터 전송 우선 클라이언트에서 서버로 데이터를 전달하는 방식은 크게 2가지가 있다. - 쿼리 파라미터를 통한 데이터 전송 -> GET -> 주로 정렬 필터, 검색어 정보 담김 - 메시지 바디를 통한 데이터 전송 -> POST, PUT, PATCH -> 리소스 등록, 회원 가입, 리소스 변경 등등.. GET, POST, PUT, PATCH와 같은 HTTP 메서드에 대한 설명은 아래 게시글을 참고 바란다. (HTTP 메서드) 클라이언트에서 서버로 데이터를 전송하는 상황을 4가지로 나누어 볼 수 있다. 1) 정적 데.. 2023. 1. 12.
HTTP 메서드(GET, POST, PUT, PATCH, DELETE) 0. 개요 이번 게시물에서는 HTTP 메서드에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. HTTP 메서드는 왜 나왔을까? HTTP 메서드는 왜 나왔을까? 이를 확인해 보기 위해 간단한 회원 정보 관리 API를 한번 설계해보자. 우선 다음과 같은 기능들의 API URI 설계를 해보자. (URI란?). - 회원 목록 조회 /read-member-list - 회원 조회 /read-member-by-id - 회원 등록 /create-member - 회원 수정 /update-member - 회원 삭제 /delete-member 이것은 과연 좋은 URI 설계인가? 가독성이 좋기는 하지만, "어떤 개념과 관련된 내용"인지 인식하기 쉽지 않다. 가장.. 2023. 1. 12.
HTTP란?, HTTP 메시지 0. 개요 이 게시물에서는 HTTP에 대해 간단한 개념과 내용을 정리할 것이다. 사실 더 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로서, 인터넷에서 데이터를 주고 받을 수 있는 프로토콜을 말한다. 여기서 프로토콜은 규칙이라고 생각하면 된다. 즉, http 규칙을 지키므로서 모든 프로그램이 서로간에 정보를 교환할 수 있게 된다. HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, ... 등 거의 모든 형태의 데이터를 전송 가능하며, 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 그만큼 중요한 개념이라고 할 수 있다. 2. 기반 프로토콜 HTTP/1.1, HT.. 2023. 1. 12.