도구 태그
예배 규칙서
도구 태그
서블릿 클라이언트 HTTP 요청
브라우저가 웹페이지를 요청할 때 특정 정보를 웹 서버로 전송하는데, 이 정보는 HTTP 요청 헤더의 일부로 전송되기 때문에 직접 읽을 수 없습니다. 자세한 내용은 HTTP 프로토콜을 확인하세요.
다음은 웹 프로그래밍에서 자주 사용할 수 있는 브라우저 측의 중요한 헤더 정보입니다.
| 头信息 | 描述 |
|---|---|
| Accept | 这个头信息指定浏览器或其他客户端可以处理的 MIME 类型。值 image/png 或 image/jpeg 是最常见的两种可能值。 |
| Accept-Charset | 这个头信息指定浏览器可以用来显示信息的字符集。例如 ISO-8859-1。 |
| Accept-Encoding | 这个头信息指定浏览器知道如何处理的编码类型。值 gzip 或 compress 是最常见的两种可能值。 |
| Accept-Language | 这个头信息指定客户端的首选语言,在这种情况下,Servlet 会产生多种语言的结果。例如,en、en-us、ru 等。 |
| Authorization | 这个头信息用于客户端在访问受密码保护的网页时识别自己的身份。 |
| Connection | 这个头信息指示客户端是否可以处理持久 HTTP 连接。持久连接允许客户端或其他浏览器通过单个请求来检索多个文件。值 Keep-Alive 意味着使用了持续连接。 |
| Content-Length | 这个头信息只适用于 POST 请求,并给出 POST 数据的大小(以字节为单位)。 |
| Cookie | 这个头信息把之前发送到浏览器的 cookies 返回到服务器。 |
| Host | 这个头信息指定原始的 URL 中的主机和端口。 |
| If-Modified-Since | 这个头信息表示只有当页面在指定的日期后已更改时,客户端想要的页面。如果没有新的结果可以使用,服务器会发送一个 304 代码,表示 Not Modified 头信息。 |
| If-Unmodified-Since | 这个头信息是 If-Modified-Since 的对立面,它指定只有当文档早于指定日期时,操作才会成功。 |
| Referer | 这个头信息指示所指向的 Web 页的 URL。例如,如果您在网页 1,点击一个链接到网页 2,当浏览器请求网页 2 时,网页 1 的 URL 就会包含在 Referer 头信息中。 |
| User-Agent | 这个头信息识别发出请求的浏览器或其他客户端,并可以向不同类型的浏览器返回不同的内容。 |
HTTP 헤더를 읽는 방법
서블릿 프로그램에서 HTTP 헤더를 읽는 방법은 다음과 같습니다. 이러한 메소드는 HttpServletRequest 객체를 통해 사용할 수 있습니다.
| 일련번호 | 방법 및 설명 |
|---|---|
| 1 | 쿠키[] getCookies( ) 이 요청에 대해 클라이언트가 보낸 모든 Cookie 개체가 포함된 배열을 반환합니다. |
| 2 | Enumeration getAttributeNames() 이 요청에 사용할 수 있는 속성 이름이 포함된 열거형을 반환합니다. |
| 3 | 열거 getHeaderNames() 이 요청에 포함된 모든 헤더 이름이 포함된 열거를 반환합니다. |
| 4 | Enumeration getParameterNames() 이 요청에 포함된 매개변수의 이름이 포함된 String 객체의 열거형을 반환합니다. |
| 5 | HttpSession getSession() 이 요청과 관련된 현재 세션을 반환하거나 요청에 세션이 없는 경우 을 선택한 다음 하나를 생성하세요. |
| 6 | HttpSession getSession(boolean create) 이 요청과 관련된 현재 HttpSession을 반환하거나 현재 세션이 없는 경우 반환합니다. , create가 true이면 새 세션이 반환됩니다. |
| 7 | Locale getLocale() Accept-Language 헤더를 기반으로 콘텐츠 허용을 위해 클라이언트가 선호하는 로케일을 반환합니다. |
| 8 | Object getAttribute(String name) 아무도 없는 경우 명명된 속성의 값을 객체로 반환합니다. 주어진 이름으로 속성이 존재하면 null이 반환됩니다. |
| 9 | ServletInputStream getInputStream() ServletInputStream을 사용하여 요청 본문을 바이너리 데이터로 검색합니다. |
| 10 | String getAuthType() 서블릿을 보호하는 데 사용되는 인증 체계의 이름을 반환합니다(예: "BASIC) " 또는 "SSL"이거나, JSP가 보호되지 않는 경우 null입니다. |
| 11 | String getCharacterEncoding() 요청 본문에 사용된 문자 인코딩의 이름을 반환합니다. |
| 12 | String getContentType() 요청 본문의 MIME 유형을 반환하거나, 유형을 알 수 없는 경우 null을 반환합니다. |
| 13 | String getContextPath() 요청 컨텍스트를 나타내는 요청 URI 부분을 반환합니다. |
| 14 | String getHeader(문자열 이름) 지정된 요청 헤더의 값을 문자열 형식으로 반환합니다. |
| 15 | String getMethod() 요청된 HTTP 메소드의 이름을 반환합니다(예: GET, POST 또는 PUT). . |
| 16 | String getParameter(String name) 요청 매개변수의 값을 문자열로 반환하거나 매개변수가 존재하지 않음 null을 반환합니다. |
| 17 | String getPathInfo() 요청이 이루어지면 클라이언트가 보낸 URL과 관련된 추가 경로를 반환합니다. 정보. |
| 18 | String getProtocol() 요청된 프로토콜의 이름과 버전을 반환합니다. |
| 19 | String getQueryString() 경로 뒤의 요청 URL에 포함된 쿼리 문자열을 반환합니다. |
| 20 | String getRemoteAddr() 요청을 보내는 클라이언트의 인터넷 프로토콜(IP) 주소를 반환합니다. |
| 21 | String getRemoteHost() 요청을 보낸 클라이언트의 정규화된 이름을 반환합니다. |
| 22 | String getRemoteUser() 사용자가 인증되었거나 user 인증이 통과되지 않으면 null이 반환됩니다. |
| 23 | String getRequestURI() HTTP 요청의 첫 번째 줄까지 프로토콜 이름에서 쿼리 문자열을 반환합니다. 요청한 URL. |
| 24 | String getRequestedSessionId() 클라이언트가 지정한 세션 세션 ID를 반환합니다. |
| 25 | String getServletPath() JSP를 호출한 요청의 URL 일부를 반환합니다. |
| 26 | String[] getParameterValues(String name) 주어진 요청을 모두 포함하는 문자열 객체의 배열을 반환합니다. 매개변수입니다. 매개변수가 없으면 null입니다. |
| 27 | boolean isSecure() 요청이 HTTPS와 같은 보안 채널을 사용하는지 여부를 나타내는 부울 값을 반환합니다. |
| 28 | int getContentLength() 요청 본문의 길이를 바이트 단위로 반환하고 입력 스트림을 제공합니다. 길이를 알 수 없으면 -1이 반환됩니다. |
| 29 | int getIntHeader(String name) 지정된 요청 헤더의 값을 int 값으로 반환합니다. |
| 30 | int getServerPort() 이 요청이 수신된 포트 번호를 반환합니다. |
HTTP 헤더 요청 예
다음 예에서는 HttpServletRequest의 getHeaderNames() 메서드를 사용하여 HTTP 헤더 정보를 읽습니다. 이 메서드는 현재 HTTP 요청과 관련된 헤더 정보가 포함된 열거형을 반환합니다.
열거형이 있으면 hasMoreElements() 메서드를 사용하여 중지 시점을 결정하고 nextElement()<를 사용하여 표준 방식으로 열거형을 반복할 수 있습니다. 🎜> 각 매개변수의 이름을 가져오는 방법입니다.
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
// 扩展 HttpServlet 类
public class DisplayHeader extends HttpServlet {
// 处理 GET 方法请求的方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "HTTP Header 请求实例";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n"+
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n" +
"<table width=\"100%\" border=\"1\" align=\"center\">\n" +
"<tr bgcolor=\"#949494\">\n" +
"<th>Header 名称</th><th>Header 值</th>\n"+
"</tr>\n");
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String paramName = (String)headerNames.nextElement();
out.print("<tr><td>" + paramName + "</td>\n");
String paramValue = request.getHeader(paramName);
out.println("<td> " + paramValue + "</td></tr>\n");
}
out.println("</table>\n</body></html>");
}
// 处理 POST 方法请求的方法
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}이제 위 서블릿을 호출하면 다음과 같은 결과가 생성됩니다. | Header 名称 | Header 值 |
|---|---|
| accept | */* |
| accept-language | en-us |
| user-agent | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-RTC LM 8) |
| accept-encoding | gzip, deflate |
| host | localhost:8080 |
| connection | Keep-Alive |
| cache-control | no-cache |
관련 동영상
핫 AI 도구
무료로 이미지를 벗다
사진에서 옷을 제거하는 온라인 AI 도구입니다.
사실적인 누드 사진을 만들기 위한 AI 기반 앱
더 현명한 결정을 위한 AI 기반 투자 연구
인기 기사
뜨거운 주제
20518
7
13631
4
11966
4
8993
17
8505
7
인기 있는 도구
사용하기 쉬운 무료 코드 편집기
중국어 버전, 사용하기 매우 쉽습니다.
강력한 PHP 통합 개발 환경
시각적 웹 개발 도구
신 수준의 코드 편집 소프트웨어(SublimeText3)












![PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]](https://img.php.cn/upload/course/000/000/035/5d27fb58823dc974.jpg)
