코드 저장소

공부에는 끝이 없다!

HTTP 15

HTTP - HTTP 메서드 (2)

PUT put은 리소스를 대체하는 메서드이다. 다만 리소스가 없으면 생성하고, 리소스가 있으면 대체한다. 예를 들어, 우리가 파일을 저장할때 같은 이름이 없으면 생성하고, 없으면 덮어씌우는 것과 같은 동작이다. PUT을 사용할 때 중요한 점이 있는데 클라이언트가 리소스를 식별한다는 것이다. 이게 무슨 말이냐면 이전에 POST 메시지를 살펴보자. POST /members HTTP/1.1 Content-Type: application/json { "userId":"1", "username":"hong" } URI를 보면 뒤에 /{id}값이 없다. 이는 POST 메서드는 클라이언트가 리소스를 식별하는 것이 아니라 POST로 들어온 데이터를 서버가 처리하는 것이 주 목적이기 때문이다. 하지만 PUT의 경우는 클..

HTTP 2024.01.11

HTTP - HTTP 메서드

HTTP API 설계 이번에는 HTTP API를 설계하는 과정을 배워보자. 당신에게 회원기능에 대한 API를 설계하라는 요청이 들어왔다. 회원 기능은 회원가입, 회원조회, 회원정보 수정, 회원 탈퇴의 4가지 기능이 있다고 가정한다. 그럼 가장 먼저 URI를 설계하게 될 것이다. 우리는 일반적인 명명규칙에 따라 회원가입 : /join-member/ 회원조회 : /read-member/ 회원정보 수정 : /update-member/ 회원탈퇴 : /delete-member/ 라고 URI를 작성하였다. 얼핏 보면 굉장히 잘 설계된 URI처럼 보이지만 실은 그렇지 않다. URI에서 가장 중요한 것은 리소스를 식별하는 것이기 때문이다. 그렇다면 우리 요구사항에서 리소스는 뭘까? 바로 회원이라는 개념 자체가 리소스가..

HTTP 2024.01.10

HTTP - HTTP 기본

HTTP란? http는 Hyper Text Transfer Protocol의 약자이다. 처음 시작은 하이퍼 텍스트를 전송하는 프로토콜로 시작하였으나 현대에는 거의 모든 형태의 데이터 전송이 가능하다. 또한 서버간의 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 현재 가장 많이 사용되는 버전은 HTTP/1.1로 대부분의 기능이 다 들어있으며 그 위의 버전은 대부분 성능 개선에 초점이 맞추어져 있다. 또한, HTTP/1.1, HTTP/2는 TCP 기반으로 동작하며 HTTP/3는 UDP에서 동작한다. HTTP의 특징 HTTP는 클라이언트 서버 구조로 동작하며 무상태 프로토콜(스테이스리스), 비연결성이란 특징을 지닌다. 또한, HTTP 메시지를 통해 통신을 하며 단순하고 확장이 가능하다는 특징이 있다. ..

HTTP 2024.01.09

HTTP - URI와 웹 브라우저 요청 흐름

URI( Uniform Resource Identifier )란? URI(Uniform Resource Identifier)는 로케이터(Locator), 이름(name) 또는 둘 다 추가로 분류 될 수 있다. 아마 개발자라면 URI, URL, URN에 대해서 용어는 한번쯤 들어보았을 것이다. 이것들은 전부 인터넷 자원(Resource)을 식별하는 방법이며 크게는 URL(Resource Locator)와 URN(Resource Name)으로 나뉜다. 그리고 URI란 이 둘을 통합하여 지칭하는 개념이다. 좀 더 자세하게 살펴보면 URN은 인터넷 자원의 이름을 뜻하고 URL은 인터넷 자원으로 찾아가는 주소 정보, URI는 인터넷 자원을 식별할 수 있는 모든 문자열을 말한다. 비유로써 잘 정리되어 있는 글이 있..

HTTP 2024.01.08

HTTP - 인터넷 네트워크에 대하여

IP란? IP(인터넷 프로토콜)란 지정한 IP 주소로(IP Address) 데이터를 전달할 수 있는 규칙이다. 패킷(Packet)이라는 통신단위로 데이터를 전달한다. 이 IP 패킷에는 규칙이 있는데 일반적으로 출발IP주소와 목적 IP주소를 적게 된다. 이를 통해 복잡한 인터넷 노드 안에서 서로 목적지로 던지게 되면서 최종 주소인 목적 IP 주소로 데이터가 도달 하게 되는 것이다. 이런 IP에는 한계가 있는데 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송(비연결성) 중간에 패킷이 사라지거나 패킷이 순서대로 오지않으면 제대로 동작하지 않음(비신뢰성) 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우 동작하지 않음(프로그램 구분) 과 같은 문제점이 있다. 따라서 이런 문제점을..

HTTP 2024.01.07