HTTP

[HTTP] 데이터 요청 - GET

cornarong 2021. 7. 25. 21:21

GET 쿼리 파라미터

GET 요청 방식은 클라이언트에서 서버로 정보를 조회하기 위해 사용된다.

GET 요청의 일부로서 메시지 바디 없이, URL의 쿼리 파라미터를 사용해서 데이터를 전달한다.

예) 검색 용어, 날짜 범위, 필터, 페이징, 쿼리를 정의하는 기타 정보

 

쿼리 파라미터는 URL에 다음과 같이 '?'로 시작하고, 추가 파라미터는 '&'로 구분한다.

예) http://localhost:8080/request-param?username=hello&age=20

 

서버에서는 'HttpServletRequest'가 제공하는 다음 메서드를 통해 쿼리 파라미터를 편리하게 조회할 수 있다.

//단일 파라미터 조회
String username = request.getParameter("username"); 

//파라미터 이름들 모두 조회
Enumeration<String> parameterNames = request.getParameterNames();

//파라미터를 Map으로 조회
Map<String, String[]> parameterMap = request.getParameterMap();

//복수 파라미터 조회
String[] usernames = request.getParameterValues("username");

// 전체 파라미터 조회
request.getParameterNames().asIterator().forEachRemaining(
	paramName -> System.out.println(paramName + "=" + request.getParameter(paramName)));
System.out.println();    

// 단일 파라미터 조회
String username = request.getParameter("username");
String age = request.getParameter("age");
System.out.println("username = " + username);
System.out.println("age = " + age);
System.out.println();

// 이름이 같은 복수 파라미터 조회
String[] usernames = request.getParameterValues("username");
for (String name : usernames) {
	System.out.println("name = " + name);
}

* 단일 파라미터

실행 : http://localhost:8080/request-param?username=hello&age=20

결과 :

username=hello
age=20

username = hello
age = 20

name = hello

* 복수 파라미터

실행 : http://localhost:8080/request-param?username=hello&username=kim&age=20

결과 :

username=hello
age=20

username = hello
age = 20

name = hello
name = kim

위 예시와 같이 파라미터 이름이 중복일 때는 request.getParameterValues() 를 사용하면 된다.
request.getParameter() 를 사용하면 request.getParameterValues() 의 첫 번째 값을 반환한다.

 

 

 


Reference

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/

'HTTP' 카테고리의 다른 글

[HTTP] HTTP 상태코드  (0) 2021.11.22
[HTTP] 인터넷 네트워크(IP, TCP, UDP, DNS)  (0) 2021.08.09
[HTTP] 데이터 요청 - HTTP API(REST API)  (0) 2021.07.26
[HTTP] 데이터 요청 - POST  (0) 2021.07.25
[HTTP] HTTP 데이터 요청 3가지  (0) 2021.07.24