http 28

HTTP 요청 데이터 - API 메시지 바디 - JSON

HTTP API에서 사용하는 JSON 형식으로 데이터를 전달해보자. JSON 형식 전송 POST http://localhost:8080/request-body-json content-type: application/json message body: {"username": "hello", "age": 20} 결과: messageBody = {"username": "hello", "age": 20} 출력되게 만들어 보자. HelloData Class를 만들어주고 lombok 라이브러리가 있으니까 getter setter을 직접 쓰는 대신에 어노테이션으로 넣어준다. // basic - HelloData Class package hello.setvlet.basic; import lombok.Getter; imp..

Spring/SpringMVC 2022.04.22

HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트

HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH 먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어보자. HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽음 간단하게 코드로 작성을 해보자. // RequestBodyStringServlet class package hello.setvlet.basic.request; import org.springframework.util.StreamUtils; import javax.servlet.ServletExceptio..

Spring/SpringMVC 2022.04.22

HTTP 요청 데이터 - POST HTML Form - 로그 에러

이제 HTML의 Form을 이용해 클라이언트에서 서버로 데이터를 전송해보자. 회원가입, 상품 주문 등에서 사용하는 방식이다. content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달한다. username=hello&age=20 기본적으로 html 파일을 하나 만들어주자.(hello-form.html) username: age: 전송 Form Data는 안보이네??,,,, 결과를 확인하게 되면 // RequestParamServlet Class System.out.println("[전체 파라미터 조회] - start"); request.getParameterNames().asIterator() // paramName은 user..

Spring/SpringMVC 2022.04.21

HTTP 요청 데이터 - GET 쿼리 파라미터

데이터를 클라이언트에서 서버로 전송해보자. 데이터가 있는데 username=hello age=20 메시지 바디 없이, URL의 "쿼리 파라미터"를 사용해서 데이터를 전달해보자. 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 쿼리파라미터는URL에다음과같이 ?를시작으로보낼수있다.추가파라미터는 &로구분하면된다. http://localhost:8080/request-param?username=hello&age=20 그렇게 하면 서버에서는 HttpServletRequest 가 제공하는 다음 메서드를 통해 쿼리 파라미터를 편리하게 조회할 수 있다. 코드를 한번 작성을 해보자. package hello.setvlet.basic.request; import javax.servlet.ServletException..

Spring/SpringMVC 2022.04.21

HTTP 요청 데이터 - 개요

HTTP 요청 메시지를 통해서 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 3가지 방법이 있다. GET - 쿼리 파라미터 / url*?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 전달 username=hello&age = 20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body HTTP API(REST API)에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POS..

Spring/SpringMVC 2022.04.21

HTTP 메시지

HTTP 요청 메시지와 응답 메시지의 구조가 서로 다르다 http 메시지 공식 스펙 https://tools.ietf.org/html/rfc7230#section-3 시작 라인 요청 메시지 start - line = request-line / status - line request - line = method SP(공백) request-target SP HTTP-version CRLF(엔터) HTTP 메서드 (GET: 조회) 요청 대상 (/search?q=hello&hl=ko) / HTTP Version 시작 라인 요청 메시지 - HTTP 메서드 종류 : GET, POST, PUT, DELETE... 서버가 수행해야 할 동작 지정 GET: 리소스 조회 POST: 요청 내역 처리 GET /search?q=..

HTTP 2022.04.07

비 연결성(connectionless)

tcp / ip 같은 경우에는 기본적으로 연결을 유지하게 된다. 연결을 유지하는 동안 서버에 자원이 계속 소모가 된다. 연결을 유지하지 않는 모델은 자원을 요청을 주고 받을 때만 연결을 하고 끊어버려서 서버가 유지하는 자원을 최소한으로 줄이는 것이다. 서버가 동시에 유지해야 되는 자원은 요청할 때만 받고 바로 끊어버리기 때문에 최소한의 자원으로 서버를 유지할 수 있다. 비 연결성 HTTP는 기본이 연결을 유지하지 않는 모델 일반적으로 초 단위 이하의 빠른 속도로 응답 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하이고 매우 작다. ex) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지 않음 서버 자원을 매우 효율적으로 사용 가능(자원의 가용성을 높일 수 있음) ..

HTTP 2022.04.07

IP(인터넷 프로토콜)

IP 인터넷 프로토콜 역할 지정한 IP 주소(IP Address)에 데이터를 메세지를 전달하는 규칙 패킷이라는 통신단위로 데이터를 전달 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 클라이언트는 대상 서버가 패킷을 받을 수 있는 상태인지 모른다. 비신뢰성 중간에 패킷이 사라지거나 패킷이 순서대로 안오면 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? 인터넷 게임 하면서 음악도 듣는다?(어떻게 구분하지?) https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 ..

HTTP 2022.04.06