http 요청 및 Request 상용 방법
16185 단어 고전 백 엔 드
HTTP 요청 메 시 지 는 3 부분 으로 구성 되 어 있 습 니 다 (요청 행 + 요청 헤더 + 요청 체).
① 요청 방법 으로 GET 와 POST 는 가장 흔히 볼 수 있 는 HTTP 방법 으로 DELETE, HEAD, OPTIONS, PUT, TRACE 도 포함한다.그러나 현재 대부분의 브 라 우 저 는 GET 와 POST 만 지원 합 니 다. Spring 3.0 은 HiddenHttpMethodFilter 를 제공 합 니 다. " method" 의 폼 매개 변 수 를 통 해 이러한 특수 한 HTTP 방법 을 지정 할 수 있 습 니 다 (실제로 POST 를 통 해 폼 을 제출 합 니 다).서버 에서 HiddenHttpMethodFilter 를 설정 하면 Spring 은method 매개 변수 가 지정 한 값 은 해당 하 는 HTTP 방법 을 모 의 하면 이러한 HTTP 방법 으로 처리 방법 을 매 핑 할 수 있 습 니 다. ② 요청 에 대응 하 는 URL 주 소 를 위해 메시지 헤더 의 Host 속성 과 완전한 요청 URL 을 구성 합 니 다. ③ 프로 토 콜 이름과 버 전 번호 입 니 다. ④ HTTP 의 메시지 헤더 로 메시지 헤더 에는 몇 가지 속성 이 포함 되 어 있 으 며 형식 은 '속성 명: 속성 값' 이 고 서버 는 이에 따라 클 라 이언 트 의 정 보 를 얻 습 니 다. ⑤ 신문 체 입 니 다. 한 페이지 폼 의 구성 요소 값 을 param 1 = value 1 & param 2 = value 2 의 키 값 을 통 해 포맷 문자열 로 인 코딩 합 니 다. 여러 요청 매개 변수의 데 이 터 를 불 러 옵 니 다.신문 체 는 요청 파 라 메 터 를 전달 할 수 있 을 뿐만 아니 라 요청 URL 도 '/ chapter 15 / user. html? param 1 = value 1 & param 2 = value 2' 와 유사 한 방식 으로 요청 파 라 메 터 를 전달 할 수 있다. 위의 요청 메시지 와 대조 하여 우 리 는 그것 을 한층 더 분해 하면 너 는 더욱 상세 한 구조 도 를 볼 수 있다. --------------------- 본 고 는 따뜻 한 과거의 CSDN 블 로그 에서 왔 습 니 다. 전문 주 소 는 클릭 하 십시오.https://blog.csdn.net/u010256388/article/details/68491509?utm_source=copy
응답 메시지 구조 HTTP 응답 메시지 도 세 부분 으로 구성 되 어 있 습 니 다 (응답 줄 + 응답 헤더 + 응답 체).
① 메시지 프로 토 콜 및 버 전; ② 상태 코드 및 상태 설명; ③ 메시지 헤더 에 응답 하 는 것 도 여러 속성 으로 구성 된다. ④ 신문 문체, 즉 우리 가 진정 으로 원 하 는 '건어물' 에 호응 한다.
요청 맵
http 요청 정 보 는 6 부분 정 보 를 포함 합 니 다:
① GET 또는 POST 와 같은 요청 방법 은 제출 방식 을 나타 낸다.
② URL, 요청 한 주소 정보;
③ 협의 및 버 전;
④ 요청 헤더 정보 (쿠키 정보 포함);
⑤ 차 를 갈 아타 기 (CRLF);
⑥ 요청 내용 영역 (즉, 요청 한 내용 이나 데이터), 예 를 들 어 폼 제출 시의 매개 변수 데이터, URL 요청 매개 변수 (? abc = 123? 뒤의) 등.
여기에서 우 리 는 ①, ②, ④, ⑥ 가 변 적 인 것 을 볼 수 있 기 때문에 우 리 는 이러한 정 보 를 프로세서 에 요청 하 는 기능 처리 방법 에 대한 매 핑 을 할 수 있 기 때문에 요청 한 매 핑 은 다음 과 같은 몇 가지 로 나 눌 수 있다.
URL 경로 맵: URL 맵 을 사용 하여 프로세서 에 요청 하 는 기능 처리 방법;
요청 방법 맵 한정: 예 를 들 어 한정 기능 처리 방법 은 GET 요청 만 처리 합 니 다.
요청 매개 변수 맵 한정: 예 를 들 어 "abc" 요청 매개 변수 만 포함 하 는 요청 을 한정 합 니 다.
요청 헤드 맵 한정: 예 를 들 어 "Accept = application / json" 의 요청 만 처리 합 니 다.
2. 요청
HttpServletRequest 대상 은 클 라 이언 트 의 요청 을 대표 합 니 다. 클 라 이언 트 가 HTTP 프로 토 콜 을 통 해 서버 에 접근 할 때 HTTP 요청 헤더 의 모든 정 보 는 이 대상 에 봉 인 됩 니 다. 이 대상 이 제공 하 는 방법 을 통 해 클 라 이언 트 가 요청 한 모든 정 보 를 얻 을 수 있 습 니 다.
클 라 이언 트 정보 획득
getRequestURL 방법 은 클 라 이언 트 가 요청 할 때의 전체 URL 을 되 돌려 줍 니 다.getRequestURI 방법 은 요청 줄 의 자원 이름 부분 을 되 돌려 줍 니 다.getQueryString 방법 은 요청 줄 의 인자 부분 을 되 돌려 줍 니 다.getPathInfo 방법 은 요청 URL 의 추가 경로 정 보 를 되 돌려 줍 니 다.추가 경로 정 보 는 URL 에 있 는 Servlet 의 경 로 를 요청 한 후 매개 변 수 를 조회 하기 전의 내용 으로 '/' 로 시작 합 니 다.getRemoteAddr 방법 은 요청 한 클 라 이언 트 의 IP 주 소 를 되 돌려 줍 니 다.getRemoteHost 방법 은 요청 한 클 라 이언 트 의 전체 호스트 이름 을 되 돌려 줍 니 다.getRemotePort 방법 은 클 라 이언 트 가 사용 하 는 네트워크 포트 번 호 를 되 돌려 줍 니 다.getLocalAddr 방법 은 WEB 서버 의 IP 주 소 를 되 돌려 줍 니 다.getLocalName 방법 은 WEB 서버 의 호스트 이름 을 되 돌려 줍 니 다.
클 라 이언 트 요청 헤드 획득
getHeader (string name) 방법: String getHeaders (String name) 방법: 열거 getHeaderNames () 방법
클 라 이언 트 요청 파라미터 획득 (클 라 이언 트 가 제출 한 데이터)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* HttpServletRequest , request
* @version $Revision: 9961 $
*/
public class Request {
/**
*
*/
public enum In {
/** */
RECORD {
/** {@inheritDoc} */
public String toString() {
return "record";
}
}
}
/**
* Request
*
* @return Request
*/
public static HttpServletRequest getInst() {
return (HttpServletRequest) AppMgr.threadVar("request");
}
/**
* TODO$
*
* @param request
* void
*/
public static void setInst(HttpServletRequest request) {
AppMgr.setThreadVar("request", request);
}
/**
*
*
* @return
*/
public static User curUser() {
try {
return (User) getSession(true).getAttribute(User.KEY_SESSION_USER);
} catch (Exception e) {
// guest
IBean guest = new Bean();
guest.set("USER_CODE", "guest");
guest.set("USER_NAME", "guest");
return new User(guest);
}
}
/**
* HTTP ( :GET、POST、PUT)。
*
* @return
*/
public static String getMethod() {
return getInst().getMethod();
}
/**
* URL 。 , 。 :
* URL http://localhost:8080/web/main/list.do?id=1, /web/main/list.do
*
* @return URI
*/
public static String getRequestURI() {
return getInst().getRequestURI();
}
/**
* URL。 ( http https) , 。
*
* @return URL StringBuffer
*/
public static StringBuffer getRequestURL() {
return getInst().getRequestURL();
}
/**
* web , , ""。 :
* web web, URL http://localhost:8080/web/main/list.do?id=1, /web
*
* @return Context Path
*/
public static String getContextPath() {
return getInst().getContextPath();
}
/**
* servlet 。 :
* web web, URL http://localhost:8080/web/main/list.do?
* id=1, /main/list.do
*
* @return Servlet Path
*/
public static String getServletPath() {
return getInst().getServletPath();
}
/**
* URL Servlet 。 :
* URL http://localhost:8080/web/main/list/product1/,
* Servlet url-pattern /main/list/* /product1/
*
* @return Path Info
*/
public static String getPathInfo() {
return getInst().getPathInfo();
}
/**
* URL Servlet , 。
*
* @return path
*/
public static String getPathTranslated() {
return getInst().getPathTranslated();
}
/**
* URL 。
*
* @return
*/
public static String getQueryString() {
return getInst().getQueryString();
}
/**
* 。 , null。
*
* @param name
*
* @return
*/
public static String getHeader(String name) {
return getInst().getHeader(name);
}
/**
* 。
*
* @param name
*
* @return Enumeration
*/
public static Enumeration getHeaders(String name) {
return getInst().getHeaders(name);
}
/**
* 。
*
* @return Enumeration
*/
public static Enumeration getHeaderNames() {
return getInst().getHeaderNames();
}
/**
* , 。
*
* @param name
*
* @return
*/
public static int getIntHeader(String name) {
return getInst().getIntHeader(name);
}
/**
* , 1970-1-1 (GMT) 。
*
* @param name
*
* @return
*/
public static long getDateHeader(String name) {
return getInst().getDateHeader(name);
}
/**
* Cookie , Cookie。 Cookie, 。
*
* @return Cookie
*/
public static Cookie[] getCookies() {
return getInst().getCookies();
}
/**
* Session
*
* @param create
* Session , Session, null
* @return Session
*/
public static HttpSession getSession(boolean create) {
return getInst().getSession(create);
}
/**
* Session
*
* @return Session
*/
public static HttpSession getSession() {
return getInst().getSession();
}
/**
* Session Id
*
* @return Session Id
*/
public static String getRequestedSessionId() {
return getInst().getRequestedSessionId();
}
/**
* Session 。
*
* @return boolean ,
*/
public static boolean isRequestedSessionIdValid() {
return getInst().isRequestedSessionIdValid();
}
/**
* Session Id cookie 。
*
* @return boolean , cookie
*/
public static boolean isRequestedSessionIdFromCookie() {
return getInst().isRequestedSessionIdFromCookie();
}
/**
* Session Id URL , , 。
*
* @return boolean ,Session Id URL
*/
public static boolean isRequestedSessionIdFromURL() {
return getInst().isRequestedSessionIdFromURL();
}
/**
* 。
*
* @return BASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH(suitable
* for == comparison) , null
*/
public static String getAuthType() {
return getInst().getAuthType();
}
/**
* 。 , null。
*
* @return
*/
public static String getRemoteUser() {
return getInst().getRemoteUser();
}
/**
* 。
*
* @param role
*
* @return
*/
public static boolean isUserInRole(String role) {
return getInst().isUserInRole(role);
}
/**
* java.security.Principal , 。 , null。
*
* @return Principal
*/
public static Principal getUserPrincipal() {
return getInst().getUserPrincipal();
}
/**
* , / . 。 HTTP1.0 , HTTP/1.0。
*
* @return
*/
public static String getProtocol() {
return getInst().getProtocol();
}
/**
* URL Scheme。 : http、https ftp 。
*
* @return Scheme
*/
public static String getScheme() {
return getInst().getScheme();
}
/**
* 。
*
* @return
*/
public static String getServerName() {
return getInst().getServerName();
}
/**
* 。
*
* @return
*/
public static int getServerPort() {
return getInst().getServerPort();
}
/**
* IP 。
*
* @return IP
*/
public static String getRemoteAddr() {
return getInst().getRemoteAddr();
}
/**
* 。 , IP 。
*
* @return
*/
public static String getRemoteHost() {
return getInst().getRemoteHost();
}
/**
* 。
*
* @return
*/
public static int getRemotePort() {
return getInst().getRemotePort();
}
/**
* IP。
*
* @return IP
*/
public static String getLocalAddr() {
return getInst().getLocalAddr();
}
/**
* 。
*
* @return
*/
public static String getLocalName() {
return getInst().getLocalName();
}
/**
*
*
* @return
*/
public static int getLocalPort() {
return getInst().getLocalPort();
}
/**
* 。 。
*
* @param env
*
* @throws UnsupportedEncodingException
*
*/
public static void setCharacterEncoding(String env)
throws UnsupportedEncodingException {
getInst().setCharacterEncoding(env);
}
/**
* , null。
*
* @param name
*
* @return
*/
public static String getParameter(String name) {
return getInst().getParameter(name);
}
/**
* (String ), null。
*
* @param name
*
* @return
*/
public static String[] getParameterValues(String name) {
return getInst().getParameterValues(name);
}
/**
* 。
*
* @return Enumeration
*/
public static Enumeration getParameterNames() {
return getInst().getParameterNames();
}
/**
* Map
*
* @return Map
*/
public static Map getParameterMap() {
return getInst().getParameterMap();
}
/**
* 。
*
* @return ServletInputStream
* @throws IOException
* IO
*/
public static ServletInputStream getInputStream() throws IOException {
return getInst().getInputStream();
}
/**
* BufferedReader。
*
* @return BufferedReader
* @throws IOException
* IO
* @throws IllegalStateException
* getInputStream
*/
public static BufferedReader getReader() throws IOException,
IllegalStateException {
return getInst().getReader();
}
/**
* 。
*
* @return
*/
public static String getCharacterEncoding() {
return getInst().getCharacterEncoding();
}
/**
* , -1。
*
* @return
*/
public static int getContentLength() {
return getInst().getContentLength();
}
/**
* MIME , null。
*
* @return MIME
*/
public static String getContentType() {
return getInst().getContentType();
}
/**
* Locale 。
*
* @return Locale
*/
public static Locale getLocale() {
return getInst().getLocale();
}
/**
* Locale 。
*
* @return Locale Enumeration
*/
public static Enumeration getLocales() {
return getInst().getLocales();
}
/**
* , https
*
* @return boolean
*/
public static boolean isSecure() {
return getInst().isSecure();
}
/**
* (Object), null。
*
* @param name
*
* @return
*/
public static Object getAttribute(String name) {
return getInst().getAttribute(name);
}
/**
*
*
* @param name
*
* @param o
*
*/
public static void setAttribute(String name, Object o) {
getInst().setAttribute(name, o);
}
/**
* request 。
*
* @return Enumeration , request 。
*/
public static Enumeration getAttributeNames() {
return getInst().getAttributeNames();
}
/**
* request 。
*
* @param name
*
*/
public static void removeAttribute(String name) {
getInst().removeAttribute(name);
}
/**
* RequestDispatcher , null。
*
* @param path
*
* @return RequestDispatcher
*/
public static RequestDispatcher getRequestDispatcher(String path) {
return getInst().getRequestDispatcher(path);
}
/**
* DATA
*
* @param name
* DATA
* @return
*/
public static String getParamBean(String name) {
String rtnVal = "";
IBean paramBean = (IBean) AppMgr.threadVar("paramBean");
if (paramBean != null) {
rtnVal = String.valueOf(paramBean.get(name));
}
return rtnVal != null && rtnVal.length() > 0 ? rtnVal : getInst()
.getParameter(name);
}
public static String getWebAddress() {
StringBuffer webAddress = new StringBuffer(getInst().getScheme());
webAddress.append("://").append(getInst().getServerName());
if (80!=getInst().getServerPort()) {
webAddress.append(":").append(getInst().getServerPort());
}
webAddress.append(getInst().getContextPath());
return webAddress.toString()+"/";
}
}