1. Get은 서버에서 데이터를 얻는 데 사용되며 Post는 데이터를 서버로 전달하는 데 사용됩니다.
2. GET GET GET GET 변수 = 값 형태의 동작에 의해 지적 된 URL에 양식에 데이터를 추가하고 A를 사용합니까? 각 변수 사이의 & 연결은 둘 사이의 연결; 게시물은 데이터를 데이터 본문에 양식에 배치하고 변수와 값이 값에 해당하는 방식의 동작에 의해 지적 된 URL로 전달하는 것입니다.
3. 전송 프로세스 중에 데이터가 요청 된 URL에 배치되므로 GET는 안전하지 않습니다. 오늘날 많은 기존 서버, 프록시 서버 또는 사용자 에이전트가 요청 된 URL을 로그 파일에 기록한 다음 어딘가에 배치하여 일부 개인 정보 보호 정보가 제 3자가 볼 수 있습니다. 또한 사용자는 브라우저에서 제출 된 데이터를 직접 볼 수 있으며 일부 내부 시스템 메시지가 사용자 앞에 표시됩니다. 게시물의 모든 작업은 사용자에게 보이지 않습니다.
4. GET에 의해 전송 된 데이터의 양은 작으며, 이는 주로 URL 길이의 제한에 기인합니다. Post는 많은 양의 데이터를 전송할 수 있으므로 파일을 업로드 할 때만 게시물을 사용할 수 있습니다 (물론 다른 이유가 있으며 나중에 언급 될 예정).
5. 양식 양식의 데이터 세트의 값을 ASCII 문자로 제한합니다. POST는 전체 ISO10646 문자 세트를 지원합니다. 기본적으로 ISO-8859-1 인코딩
6. get은 기본 형태의 형태입니다.
다음 비교는 매우 유용합니다.
나는 Java Web Development에서 한동안 노력해 왔으며, 항상 나를 귀찮게하는 문제가 있습니다. 기본적으로 온라인 솔루션을 검색하고 (실제로 온라인 정보가 많이 있습니다), 모두 그러한 문제를 해결하는 방법을 소개하지만 문제의 전체 이야기를 명확하게 설명하는 사람은 거의 없습니다. 때로는 몇 가지 기사를 읽은 후에는 이해한다고 생각하지만 개발 중에는 유령처럼 나오는 문제가 발생하며 실제로 큰 문제입니다! 이 기사는 차량 코드와의 장기적인 투쟁에 대한 이해가 축적 된 것으로, 더 많은 친구들이 나에게 조언과 보충제를 제공하기를 바랍니다.
서버에 데이터를 제출하는 양식에는 두 가지 방법이 있습니다. 각각 Get and Post에 대해 이야기 해 봅시다.
(i) 제출을 받으십시오
1. 먼저, 데이터를 인코딩하고 get 메소드를 사용하여 서버에 제출하는 방법에 대해 이야기 해 봅시다.
GET 메소드의 경우 요청 된 URL이 다음과 같은 매개 변수로 데이터가 연결됩니다. http : // localhost : 8080/servlet? msg = abc
http : // localhost : 8080/servlet? msg = hangzhou, garbled 코드가 서버에서 갈라진 코드를 쉽게 가져 오는 것과 같은 중국어 또는 다른 특수 문자가 URL에 나타나는 경우 URL 스 플라이 싱이 완료된 후 URL이 URL을 사용하여 URL을 보냅니다. URL 인코딩의 프로세스는 URL의 일부를 문자로 인코딩하고 특정 인코딩 방법 (예 : UTF-8, GBK 등)에 따라 이진 바이트 코드로 인코딩하는 것입니다. 그리고 각 바이트는 3자를 포함하는 문자열 %XY로 표시됩니다. 내가 여기서 말한 것은 명확하지 않을 수 있습니다. 자세한 내용은 java.net.urlencoder 클래스의 소개를 참조하십시오. URL 인코딩 프로세스를 이해 한 후 두 가지 매우 중요한 질문을 볼 수 있습니다. 첫째 : URL 인코딩이 필요한 문자는 일반적으로 ASCII가 아닌 문자입니다 (일반적으로 말하면). 영어 문자 (중국어, 일본어 등)를 제외한 간단한 용어로 모두 URL 인코딩을 수행해야합니다. 따라서 우리에게는 서버가 차단 된 코드를 얻을 때 URL 인코딩이 차단되지 않습니다. Barbled 코드는 URL의 중국어 또는 특수 문자를 포함하는 URL에 의해 발생합니다. 둘째 : URL은 어떤 인코딩 메소드에서 문자를 인코딩합니까? 이것은 브라우저의 비즈니스이며 다른 브라우저마다 다른 관행이 있습니다. 중국어 버전의 브라우저는 일반적으로 기본적으로 GBK를 사용합니다. UTF-8은 브라우저를 설정하여 사용할 수도 있습니다. 사용자마다 다른 브라우저 설정이있을 수 있으며 인코딩 방법이 다를 수 있습니다. 따라서 많은 웹 사이트는 URL의 중국어 또는 특수 문자에 대한 JavaScript를 사용하여 URL을 먼저 사용하여 URL을 분자하여 데이터를 제출하여 브라우저에 대한 URL 인코딩을합니다. 장점은 웹 사이트가 데이터 제출 인코딩 방법을 통합 할 수 있다는 것입니다. URL 인코딩을 완료 한 후 현재 URL은 ASCII 범위 내의 문자가 된 다음 ISO-8859-1의 인코딩 방법에서 이진으로 변환하여 요청 헤더와 함께 전송됩니다. get 메소드의 경우 요청 엔티티가 없으며 데이터가 포함 된 URL이 모두 요청 헤더에 있다고 여기에 조금 더 말하고 싶습니다. URL Encode를 사용하는 이유는 요청 헤더의 경우 요청 헤더의 순수한 데이터가 바이너리 101010으로 인코딩되어야합니다. 결국, 요청 헤더의 순수한 데이터는 인터넷에서 전송되어야합니다. 중국어 및 기타 문자 ISO-8859-1과 같은 특수 문자를 직접 인코딩하는 경우 정보가 손실되므로 URL을 먼저 수행해야합니다.
2. 서버 측 (TOMCAT)가 디코딩에 대한 데이터를 어떻게 얻습니까?
첫 번째 단계는 ISO-8859-1로 데이터를 해독하는 것입니다. Get 메소드의 경우 Tomcat은 ASCII 범위에서 데이터 헤더 문자를 얻고 요청 URL에는 매개 변수 데이터가 포함됩니다. 매개 변수에 중국어와 같은 특수 문자가있는 경우 URL 인코딩 후에도 여전히 %XY 상태입니다. 먼저, 개발자가 데이터를 얻는 일반적인 프로세스에 대해 이야기 해 봅시다. 일반적으로 모든 사람은 매개 변수 데이터를 얻습니다. 우리가 얻는 요청 객체 또는 데이터는 디코딩되었지만 디코딩 프로세스 중에는 프로그램이 지정할 수 없습니다. 여기서 우리는 많은 초보자들이 request.setcharacterencoding (문자 세트)을 사용한다고 말하면서 디코딩 방법을 지정할 수 있지만 실제로는 불가능합니다 . 서블릿의 공식 API를 살펴보면이 방법에 대한 설명이 있습니다.이 요청 본문에 사용 된 문자 인코딩의 이름을 무시합니다. 이 메소드는 요청 매개 변수를 읽거나 getReader ()를 사용하여 입력을 읽기 전에 호출해야합니다. 그가 GET 방법에 대해 무엇이든 할 수있는 힘이 없다는 것을 알 수 있습니다. 그렇다면 데이터를 해독하는 데 사용되는 인코딩 방법은 무엇입니까? 이것은 Tomcat의 사업입니다. 기본 기본값은 ISO-8859-1이므로 GET 요청에 중국 매개 변수가있는 이유와 서버 측에서 gretbled 코드가 얻어진 이유를 찾을 수 있습니다. 그 이유는 UTF-8 또는 GBK가 일반적으로 데이터 URL 인코딩을 인코딩하는 데 사용되기 때문입니다. 여기서 URL 디코더는 분명히 불가능합니다. 프로그램에서 우리는 직접 할 수 있습니다
자바 코드
1. 새 문자열 (request.getParameter (이름) .getBytes (ISO-8859-1), 클라이언트가 지정한 URL 인코딩 메소드)
바이트 코드로 다시 복원하고 데이터를 올바른 방식으로 디코딩하십시오. 온라인 기사는 일반적으로 Tomcat에서 구성을 만듭니다
XML 코드
1. <커넥터 포트 = 8080 프로토콜 = http/1.1 maxthreads = 150 ConnectionTimeout = 20000 redipport = 8443 uriencoding = gbk/>
이를 통해 Tomcat은 지정된 메소드를 사용하여 데이터를 검색 할 수 있습니다. URL 디코더의 도입은 여기에 있습니다
(i) 제출 후
1. 클라이언트의 게시물 메소드 (브라우저)를 사용하여 데이터를 인코딩하고 서버에 제출하는 방법.
게시물에서 전송할 데이터도 URL 인코딩이어야하므로 어떤 인코딩 메소드를 사용합니까?
세그먼트가있는 경우 <meta http-equiv = content-type content = text/html; charset = 문자 세트 (GBK, UTF-8 등) 양식이 위치한 HTML 파일에서 게시물은 여기에 지정된 인코딩 방법으로 인코딩됩니다. 일반적으로 모든 사람은이 코드가 브라우저에 웹 페이지를 해석하기 위해 어떤 문자를 설정하는지 알리는 것이라고 생각합니다. 따라서 웹 사이트는 HTML 코드의 프론트 엔드에 배치하고 garbled 코드가 나타나지 않도록 노력할 것입니다. 실제로, 데이터를 제출하기 위해 양식 양식의 게시물의 URL 인코딩 인코딩 메소드를 지정하는 또 다른 기능이 있습니다. 여기에서 get 메소드를 계산하기 위해 브라우저의 URL 인코딩 인코딩 메소드는 브라우저 설정 (Unified Specification을 위해 JS에 지정할 수 있음)에 의해 결정되며, Post 메소드는 개발자가 지정할 수 있음을 알 수 있습니다.
2. 서버 측 (TOMCAT)가 디코딩에 대한 데이터를 어떻게 얻습니까?
Tomcat 기본 설정을 사용하고 필터와 같은 인코딩 설정을 사용하지 않으면 ISO-8859-1로 디코딩되지만 request.setcharacterencoding (문자 세트)이 유용 할 수 있습니다.
Tomcat이 위에서하는 일에 대한 전제는 요청 헤더에 인코딩 방법이 지정되지 않았다는 것입니다. 요청 헤더에 인코딩 메소드가 지정된 경우 이러한 방식으로 인코딩됩니다.2 개의 기사가 권장되며 주소는 있습니다
심층적이고 이해하기 쉬운 URL 인코딩 : http://www.cnblogs.com/yencain/articles/1321386.html;
포스트 메소드를 사용하여 데이터를 제출할 때 쓰레기 코드 문제 : http://wanghuan8086.javaeye.com/blog/173869
게시물을 사용하는 것이 중요합니다. 양식이있는 HTML 파일에 세그먼트가있는 경우. <meta http-equiv = content-type content = text/html; charset = 문자 세트 (GBK, UTF-8 등)/>
게시물을 제출하는 것이 좋습니다