김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. HTTP 상태 코드 상태코드란 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 우리가 흔히 웹서핑을 하다가 만나게 되는 404와 같은 에러가 상태코드이다. 다음과 같이 백의 자리 번대에 따라 상태코드를 분류할 수 있다. 만약에 응답에서 모르는 상태코드가 나타나면 어떻게 될까? 클라이언트가 인식할 수 없는 상태코드가 반환되거나 새로운 상태코드가 생성된 경우에는 클라이언트는 상위 상태코드로 해석해서 처리하게 된다. 예를 들면, 299번이라는 모르는 코드가 들어오면 200번대로 해석하고 499번이 들어오면 400번대로 해석한다. 이제 각 상태코드에 대해 알아보자. 1xx (Informat..
김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. 클라이언트에서 서버로 데이터 전송 지금까지 서버에서 클라이언트의 요청을 어떻게 받는지에 대한 내용을 다뤘다. 이번에는 클라이언트에서 서버로 데이터를 전송할 때 어떠한 방법으로 전송하는지에 대해 알아보겠다. 클라이언트에서 서버로 데이터를 전송하는 방법에는 크게 2가지의 방식이 있다. GET 방식을 이용하여 주로 검색어나 정렬 필터 등에 사용되는 쿼리 파라미터를 통한 전송 방법과 POST, PUT, PATCH 방식을 이용한 회원 가입, 상품 주문, 리소스 등록 및 수정 등에 사용되는 메시지 바디를 통해 전송하는 방법이 있다. 클라이언트에서 서버로 데이터를 전송하는 4가지 상황에 대해 각각 어떤 방식을 통..
김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. HTTP API를 만들어보자 회원 정보 관리 API를 만드는 업무가 주어졌다고 가정해 보자. API에는 회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제 기능이 필요할 것이다. 그럼 uri을 어떻게 구성해야 할까? 아마 처음이라면 메서드 이름을 짓듯이 이와 같이 uri로 구성하게 될 것이다. 회원 목록 조회 - /read-member-list 회원 조회 - /read-member-by-id 회원 등록 - /create-member 회원 수정 - /update-member 회원 삭제 - /delete-member 이 방법은 좋은 uri설계라고 볼 수 없다. uri을 정할 때 가장 중요한..
김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. 모든 것이 HTTP HTTP(HyperText Transfer Protocol) HyperText인 HTML을 전송하기 위한 프로토콜로 시작했고 오늘날에는 HTML, TEXT, 이미지, 영상, JSON, 서버 간의 데이터 전송 등 모든 것을 HTTP에 담아 전송한다. HTTP의 역사 HTTP/1.1 - 1997년: 가장 많이 사용되고, 우리에게 가장 중요한 버전 HTTP/2 - 2015년: 성능 개선 HTTP/3 - 진행 중: TCP 대신에 UDP 사용, 성능 개선 HTTP의 특징으로는 다음과 같다. 클라이언트 서버 구조 무상태성 비연결성 HTTP 메시지 단순하고 확장 가능 클라이언트 서버 구조 HT..
김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. URI(Uniform Resource Identifier) URI는 Locater, Name 또는 둘 다로 분류될 수 있다. URL은 리소스가 있는 위치를 지정한다. URN은 리소스에 이름을 부여한다. 위치는 변하지만, 이름은 변하지 않는다. 이름만으로 실제 리소스를 찾는 방법은 보편화되지 않았고 잘 사용하지 않는다❗️ URL 문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] Scheme 주로 프로토콜에 사용 ex) http, https, ftp 등 Userinfo 사용자 정보가 포함 거의 사용하지 않는다 host 도메인 명 or IP Add..
김영한 님의 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 듣고 정리를 위해 작성한 포스팅입니다. 인터넷 통신 클라이언트와 서버가 통신을 할 때 거리가 먼 경우 인터넷 망을 이용해야 하는데 인터넷 망은 복잡하다. 안전하게 데이터를 보내기 위해서는 어떻게 해야 할까? IP(인터넷 프로토콜) 지정한 IP주소에 패킷이라는 통신 단위로 데이터를 전달한다. 패킷에는 출발지 IP, 목적지 IP 등으로 구성 노드를 통해 목적지까지 도달❗️ IP를 이용하면 원활하게 통신이 가능할까? ❌ -> IP의 한계점이 있다. 비연결성 상대가 없거나? 통신이 불가능한 상태일 때? 비신뢰성 중간에 패킷이 손실 패킷 순서의 꼬임 (전송 시 계속 경유하는 노드가 달라짐) 프로그램 구분 여러 애플리케이션을 사용한다면? 이러한 한계..