HTTP

    [HTTP 메서드] 4. HTTP PATCH 메서드는 언제 사용되는가?

    PATCH 메서드 PATCH메서드는 리소스를 부분 변경하기 위해 사용된다. 앞서 배운 POST와 PUT은 신규 리소스를 등록하거나 덮어쓰기 위해 사용되었다. 하지만, 항상 리소스를 새로 등록하는 것은 비용이 비싸다. 따라서 일부 데이터가 변경되거나 추가되었을 경우에 대한 동작이 필요하다. PATCH는 이러한 부분 변경을 지원하는 메서드이다. 구체적인 예시보다는 을 통해 이해하도록 하자. /post/100 경로에 A: 300, C: 400이라는 리소스가 등록되어 있을 때 PATCH를 통해 A: 100, B: 200을 PATCH하라는 요청이 왔을 경우 A는 300에서 100으로 변경되고 B는 200으로 신규 등록되며 C는 그대로 400으로 남아있는다. 부분 변경을 지원하는 동작이 PATCH 메서드이다.

    [HTTP 메서드] 3. HTTP PUT 메서드 : HTTP PUT 메서드는 리소스 덮어쓰기(Overwrite)에 사용된다.

    PUT 메서드 PUT메서드는 리소스를 덮어쓰기 위해 사용한다. 앞서 다음과 같은 POST 메서드를 살펴보았다. POST /post HTTP/1.1 Host: kotlinworld.com Content-Type: text/html Content-Length: XX .. POST메서드의 경로는 /post 라는 디렉터리이며, 리소스가 등록될 경로를 구체적으로 지정하지 않았다. 따라서 서버에서 해당 리소스가 생성될 경로를 할당한다. 예를 들어 100번에 생성되었으면 /post/100이라는 경로를 리소스에게 할당한다. 하지만, PUT메서드는 다르다. PUT 메서드에서는 리소스가 할당될 경로까지 지정을 해준다. 예를들어 /post/100 이라는 것을 시작 라인에 지정해준다. PUT /post/100 HTTP/1.1..

    [HTTP 메서드] 2. HTTP POST 는 언제 사용되어야 하는가? 리소스 등록, 요청 데이터 처리를 하는 HTTP POST

    POST 메서드 POST메서드는 리소스를 등록하거나, 요청 데이터를 처리하기 위해 사용된다. 시작라인과 헤더만을 가진 GET과는 달리(GET에는 바디도 있을 수 있지만 잘 사용되지 않는다) POST는 시작라인과 헤더 그리고 바디(Body)까지 모두 가지고 있기 때문에 바디를 통해 다양한 형태의 데이터를 넘기는 것이 가능하다. 이를 통해 바디의 데이터로 새로운 리소스를 등록하거나 처리되어야 하는 작업의 설정이 가능하다. 리소스 등록 예를 들어 우리가 kotlinworld.com에 html 형식의새로운 글을 등록한다고 해보자. 우리는 다음과 같은 HTTP 요청을 kotlinworld.com에 날린다. POST /post HTTP/1.1 Host: kotlinworld.com Content-Type: text..

    [HTTP 메서드] 1. HTTP GET 메서드는 언제 사용되는가? 리소스 조회 및 질의를 위한 HTTP GET

    GET 메서드 GET 메서드는 리소스를 조회하는데 사용된다. 보통 GET메서드는 리소스에 직접 접근하거나 질의(Query)를 날릴 때 사용된다. 리소스 직접 조회 먼저 GET메서드를 이용해 리소스를 조회하는 것을 살펴보자. https://kotlinworld.com/post/94 위와 같은 URL을 웹브라우져에 날렸다고 해보자. 이는 아래와 같은 HTTP 메세지로 변환되어 서버로 전송된다. GET /post/94 HTTP/1.1 Host: www.kotlinworld.com 이 때 서버는 www.kotlinworld.com의의 /post/94에 있는 리소스를 클라이언트에 반환한다. 질의(Query)를 통한 조회 다음은 질의를 이용해 리소스를 조회하는 방식이다. 질의는 ?{키워드}={질의 내용} 을 통해 ..

    [HTTP] 1. HTTP 메세지는 어떻게 구성되었는가? Start Line, Header Body로 보는 HTTP 메세지

    HTTP 메세지 구조 HTTP의 메세지는 3가지 부분으로 나뉘어져 있다. Start Line(시작 라인) Header(헤더) Body(바디) HTTP메세지는 ASCII Characterset을 사용하는 문자열로 전송이 되기 때문에 필요한 부분을 파싱하기 위해서는 각 부분의 구조화가 필요하다. 각 부분은 다음과 같이 구조화된다. Start Line 한 줄로 이루어져 있다. 첫 번째 줄이 무조건 시작 라인이 되며 시작 라인은 두 줄 이상은 될 수 없다. Header 헤더는 첫 줄을 제외한 공백라인이 나오기 전까지의 줄이다. 헤더는 수십줄, 수백줄이 될 수도 있다. Body 바디는 공백 라인 뒤의 모든 라인으로 이루어져 있다. 간단한 규칙이다. 자 그러면 각 부분에서 어떤 일을 하는지 살펴보자. Start L..