티스토리

조세영의 Kotlin World
검색하기
블로그 홈

블로그 홈

조세영의 Kotlin World

kotlinworld.com/m
신고

'조세영의 Kotlin World'는 Kotlin를 전문적으로 다루는 개인 기술 블로그입니다. Kotlin 세계에 대한 양질의 자료를 제공하며 Kotlin, Android, Spring, CI, CD 분야에 대해 다룹니다.

구독자
12
방명록 방문하기
공지 코틀린 코루틴 완전 정복 강의 in ⋯ 모두보기

주요 글 목록

  • HTTP 통신과 TCP, IP 레이어 한 번에 정리하기 : 3way handshake, 소켓 통신 시작하며 HTTP(HyperText Transfer Protocol) 통신은 클라이언트와 서버 간 데이터를 주고 받기 위한 프로토콜이다. 다시 말하면, HTTP 통신 자체는 어떤 형식의 데이터를 보낼지 미리 정의해 놓는 방식일 뿐이다. 따라서 클라이언트와 서버간 HTTP 통신이 일어나기 위해서는 데이터를 주고 받기 위한 여러 기술이 필요하다. 이번 글에서는 HTTP 통신이 일어나기 위해 내부적으로 어떤 일이 일어나는지를 정리해본다. IP 레이어 IP 레이어란 무엇인가? 먼저 클라이언트와 서버를 생각해보자. 클라이언트와 서버는 컴퓨터일 뿐이며, 데이터를 요청하는 쪽이 클라이언트 데이터를 보내는 쪽이 서버가 된다. 따라서 이 둘간의 통신을 위해서는, 두 컴퓨터가 연결되기 위한 주소값이 필요하다. 이러한 역할.. 공감수 1 댓글수 0 2024. 3. 17.
  • [HTTP Response] HTTP 응답 메세지는 어떻게 구성되는가? HTTP 응답 메세지의 구성 HTTP 응답 메세지는 다음과 같은 형태로 구성된다. [HTTP 버전] [응답 상태 코드] [상태 메세지] [헤더] [빈 줄] [메세지 바디] 각 항목에 대한 설명은 다음과 같다. HTTP 버전: HTTP의 버전을 나타낸다. HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2.0 등이 될 수 있다. 응답 상태 코드: 100번대부터 500번대의 응답 코드를 나타낸다. 예를 들어 200이라면, 요청이 성공했다는 것을 뜻한다. 상태 메세지: 상태 메세지를 나타낸다. 예를 들어 상태 코드가 200번이라면 OK 같은 메세지를 전송할 수 있다. 상태 메세지는 없을 수도 있다. 헤더: 헤더에는 메세지 바디를 통해 전달할 콘텐츠의 MIME 타입(Content-Type), 콘텐.. 공감수 1 댓글수 0 2024. 2. 25.
  • [HTTP 메서드] 5. HTTP DELETE 메서드는 언제 사용되는가? DELETE 메서드 DELETE 메서드는 리소스를 삭제하기 위해 사용된다. DELETE 메서드는 특정 리소스를 제거하기 위해 사용된다. 특정 경로의 리소스를 제거하기 위해 사용되므로, 데이터를 담는 바디가 있을 필요가 없다. 따라서 DELETE 메서드는 시작라인과 헤더로만 구성된다. DELETE 메서드 수행 시 과 같이 삭제를 요청 받은 리소스 경로의 리소스는 제거된다. 물론 없으면 아무런 일도 일어나지 않는다. 공감수 1 댓글수 0 2021. 5. 15.
  • [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 메서드이다. 공감수 1 댓글수 0 2021. 5. 15.
  • [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.. 공감수 0 댓글수 0 2021. 5. 15.
  • [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.. 공감수 1 댓글수 0 2021. 5. 15.
  • [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)를 통한 조회 다음은 질의를 이용해 리소스를 조회하는 방식이다. 질의는 ?{키워드}={질의 내용} 을 통해 .. 공감수 0 댓글수 0 2021. 5. 10.
  • [HTTP] 2. HTTP 메서드 정리 - GET, POST, PUT, PATCH, DELETE의 차이 HTTP 메서드 HTTP메서드는 클라이언트에서 서버로 리소스에 대한 작업을 지시할 때 사용된다. 즉, HTTP메서드는 클라이언트에서 서버에 작업을 요청할 때만 사용되며, 서버에서 클라이언트로 보내는 메세지에는 포함되지 않는다. 이러한 HTTP메서드는 여러가지가 있지만, 이 글에서는 자주 사용되는 GET과 POST 그리고 비교적 빈번히 사용되는 PUT, PATCH, DELETE에 대해서 다룬다. 목차 리소스 조회 : GET 메서드 리소스 등록1 : POST 메서드 리소스 등록2 : PUT 메서드 리소스 등록3 : PATCH 메서드 리소스 삭제 : DELETE 메서드 공감수 0 댓글수 0 2021. 5. 10.
  • [HTTP] 1. HTTP 메세지는 어떻게 구성되었는가? Start Line, Header Body로 보는 HTTP 메세지 HTTP 메세지 구조 HTTP의 메세지는 3가지 부분으로 나뉘어져 있다. Start Line(시작 라인) Header(헤더) Body(바디) HTTP메세지는 ASCII Characterset을 사용하는 문자열로 전송이 되기 때문에 필요한 부분을 파싱하기 위해서는 각 부분의 구조화가 필요하다. 각 부분은 다음과 같이 구조화된다. Start Line 한 줄로 이루어져 있다. 첫 번째 줄이 무조건 시작 라인이 되며 시작 라인은 두 줄 이상은 될 수 없다. Header 헤더는 첫 줄을 제외한 공백라인이 나오기 전까지의 줄이다. 헤더는 수십줄, 수백줄이 될 수도 있다. Body 바디는 공백 라인 뒤의 모든 라인으로 이루어져 있다. 간단한 규칙이다. 자 그러면 각 부분에서 어떤 일을 하는지 살펴보자. Start L.. 공감수 2 댓글수 0 2021. 5. 9.
  • HTTP(HyperText Transfer Protocol)의 특징 HTTP 통신 HTTP 통신은 다음과 같은 특징을 가진다. 대부분의 파일 형식 전송 가능 클라이언트 - 서버 구조 Stateless Connectionless 대부분의 파일 형식 전송 가능 HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가지지만, 오늘날에는 거의 모든 파일 형식을 HTTP 통신을 이용해 전송 가능하다. 특히 우리가 자주 사용하는 JSON, TEXT, IMAGE 파일은 물론 음성 파일 등도 HTTP를 통해 전송이 가능해졌다. 클라이언트 - 서버 구조 클라이언트 - 서버 구조 클라이언트의 요청이 있을 때 서버가 응답하는 단방향 통신이다. HTTP는 클라이언트에서 서버에 요청을 하는 단방향 통신이다. 서버는 클라이언트에 요청.. 공감수 5 댓글수 0 2021. 5. 9.
  • HTTP 통신과 Socket 통신의 차이점 목표 Htttp 통신과 Socket 통신의 차이점을 이해한다. HTTP 통신이란? HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가진다. 웹브라우저에서 통신이 일어나며, 초기에는 HTML 파일을 전송하려는 목적으로 만들어졌으나 현재는 JSON, Image 파일 등 또한 전송한다. HTTP 통신의 통신 방식 HTTP 통신은 클라이언트에서 서버로 요청을 보내고 서버가 응답하는 방식으로 통신이 이루어진다. 응답에는 클라이언트의 요청에 따른 결과를 반환한다. 이로 인해 다음과 같은 특성을 가진다. 클라이언트의 요청이 있을 때 서버가 응답하는 방식. 단방향 통신. 서버의 응답에는 응답 코드가 같이 전송되며, 사용자는 응답 코드와 메세지 응답으로.. 공감수 46 댓글수 5 2021. 5. 4.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.