> 웹 프론트엔드 > HTML 튜토리얼 > GET POST_HTML/Xhtml_Web 페이지 제작의 차이점에 대한 자세한 설명

GET POST_HTML/Xhtml_Web 페이지 제작의 차이점에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 16:43:07
원래의
1226명이 탐색했습니다.

1. Get은 서버에서 데이터를 가져오는 데 사용되고 Post는 서버로 데이터를 전송하는 데 사용됩니다.
2. Get은 액션이 가리키는 URL에 형태의 데이터를 변수=값 형태로 추가하고, 둘은 "?"를 사용하여 연결되며, 각 변수는 "&"를 사용하여 연결됩니다. to 양식의 데이터는 양식의 데이터 본문에 배치되고 해당 변수 및 값에 따라 작업이 가리키는 URL로 전달됩니다.
3. 전송 과정에서 데이터가 요청된 URL에 배치되고 많은 기존 서버, 프록시 서버 또는 사용자 에이전트가 요청된 URL을 로그 파일에 기록한 다음 어딘가에 저장하기 때문에 Get은 안전하지 않습니다. 제3자가 볼 수 있는 개인정보. 또한 사용자는 제출된 데이터를 브라우저에서 직접 볼 수도 있으며 일부 내부 시스템 메시지가 사용자 앞에 표시됩니다. 모든 게시 작업은 사용자에게 표시되지 않습니다.
4. Get으로 전송되는 데이터의 양은 주로 URL 길이에 의해 제한되기 때문에 적습니다. 반면 Post는 많은 양의 데이터를 전송할 수 있으므로 파일을 업로드할 때만 Post를 사용할 수 있습니다. 이유는 나중에 언급하겠습니다)).
5. Get은 양식 형식의 데이터 세트 값을 ASCII 문자로 제한하는 반면 Post는 전체 ISO10646 문자 세트를 지원합니다. 기본값은 ISO-8859-1 인코딩을 사용하는 것입니다
6. Get은 Form의 기본 방법입니다.
다음 비교는 매우 유용합니다.
저는 한동안 Java 웹 개발을 해왔는데 항상 저를 괴롭히는 문제가 있습니다. 코드 문제 기본적으로 저는 온라인에서 해결책을 찾고 있었고(온라인에는 정말 많은 정보가 있습니다) 이런 종류의 잘못된 코드 문제를 해결하는 방법에 대한 소개가 많았지만 그 중 내용을 자세히 설명한 내용은 거의 없었습니다. 때로는 기사를 읽고 이해했다고 생각했지만, 개발 중에 왜곡된 코드 문제가 유령처럼 나타나서 사람들을 겁나게 합니다. 이 글은 왜곡된 캐릭터들과의 오랜 투쟁에 대한 이해의 축적입니다. 또한 더 많은 친구들이 조언과 보충을 제공할 수 있기를 바랍니다.
양식에는 서버에 데이터를 제출하는 두 가지 방법, 즉 get과 post에 대해 각각 이야기해 보겠습니다.
(1) Get submit
1. 먼저 클라이언트(브라우저) 폼에서 어떻게 get 메소드를 사용하여 데이터를 인코딩하고 서버에 제출하는지 살펴보겠습니다.

get 메소드의 경우 데이터는 요청된 URL 뒤에 매개변수로 연결됩니다. 예: http://localhost:8080/servlet?msg=abc
(매우 일반적인 잘못된 문제입니다. http://localhost:8080 /servlet?msg=Hangzhou와 같이 URL에 중국어 또는 기타 특수 문자가 나타나면 서버 측에서 URL 연결이 완료된 후 문자가 깨질 수 있습니다. 브라우저는 URL 인코딩을 처리한 다음 서버로 전송합니다. URL 인코딩 프로세스는 URL의 일부를 문자로 사용하고 이를 특정 인코딩 방법(예: utf-8, gbk 등)을 사용한 다음 3자리 문자열 "%xy"로 표시됩니다. 여기서 xy는 바이트의 두 자리 16진수 표현입니다. 여기서 말하는 내용이 명확하지 않을 수 있습니다. 자세한 소개는 여기에서 java.net.URLEncoder 클래스 소개를 참조하세요. URL 인코딩 과정을 이해한 후에는 매우 중요한 두 가지 문제를 볼 수 있습니다. 첫째, URL 인코딩이 필요한 문자는 일반적으로 ASCII가 아닌 문자이고(일반적으로 말하면) 영어 문자가 아닌 텍스트입니다(예: : 중국어, 일본어 등)은 URL로 인코딩되어야 하므로 영어 문자가 포함된 URL은 서버에서 문자 깨짐을 발생시키지 않습니다. 두 번째는 URL의 중국어 또는 특수 문자입니다. 인코딩 방법은 URL 인코딩이 문자를 인코딩하는 데 사용됩니까? 이는 브라우저의 문제이며, 브라우저마다 접근 방식이 다릅니다. 브라우저의 설정에 따라 UTF-8을 사용할 수도 있습니다. 다양한 인코딩 방법으로 많은 웹사이트에서는 JavaScript를 사용하여 URL에 있는 중국어 또는 특수 문자를 먼저 URL 인코딩한 다음 URL을 연결하여 데이터를 제출합니다. 즉, URL 인코딩이 브라우저에 대해 수행된다는 장점이 있습니다. get 메소드로 제출된 데이터의 인코딩 방법을 통합할 수 있습니다. URL 인코딩이 완료되면 이제 URL은 ASCII 범위의 문자가 된 다음 iso-8859-1 인코딩을 사용하여 바이너리로 변환되어 요청 헤더와 함께 전송됩니다. 여기서 몇 마디 더 말씀드리고 싶은 것은 get 메소드에는 요청 엔터티가 없고, 데이터가 포함된 URL이 요청 헤더에 있다는 것입니다. URL 인코딩을 사용하는 이유는 개인적으로 다음과 같습니다. 요청 헤더에 대해서는 결국 101010...의 순수 데이터를 iso-8859-1 인코딩 방식을 사용하여 바이너리로 인코딩하여 인터넷을 통해 전송하게 되는데, 중국어나 기타 문자가 포함된 특수문자를 iso로 직접 인코딩하면 된다. -8859-1, 정보가 유실되므로 먼저 URL 인코딩을 해야 합니다. 2. 서버측(Tomcat)은 어떻게 데이터를 얻고 디코딩합니까?
첫 번째 단계는 iso-8859-1을 사용하여 데이터를 디코딩하는 것입니다. get 메소드의 경우 tomcat은 ASCII 범위의 요청 헤더 문자가 있는 데이터를 가져옵니다. 매개변수에 중국어가 있으면 특수 매개변수를 기다리세요. 문자가 있으면 URL 인코딩 후에도 여전히 %XY 상태입니다. 먼저 개발자가 일반적으로 데이터를 얻는 과정에 대해 이야기하겠습니다. 일반적으로 모든 사람은 매개변수 데이터를 얻기 위해 request.getParameter("name")을 사용합니다. 요청 개체에서 얻은 데이터는 디코딩되었으며 여기서는 디코딩 프로세스 중에 이를 지정할 수 없습니다. 초보자들은 request.setCharacterEncoding("Character Set")을 사용하여 디코딩 방법을 지정할 수 있다고 말합니다. 실제로는 불가능합니다. 이 방법에 대한 설명은 서블릿의 공식 API 설명을 참조하세요. 이 요청의 본문에 사용된 문자 인코딩의 이름입니다. 이 메소드는 요청 매개변수를 읽거나 getReader()를 사용하여 입력을 읽기 전에 호출되어야 합니다. 그러면 데이터를 디코딩하는 데 어떤 인코딩 방법이 사용됩니까? 이것은 tomcat의 문제입니다. 기본값은 iso-8859-1이므로 클라이언트 측에서 중국어 매개변수가 포함된 get 요청이 왜곡되는 이유를 알 수 있습니다. , UTF-8 또는 GBK는 일반적으로 데이터 URL을 인코딩하는 데 사용됩니다. 여기서는 iso-8859-1 URL 디코더를 사용할 수 없습니다.
Java 코드
1. String( request.getParameter("name").getBytes("iso-8859-1"),"클라이언트가 지정한 URL 인코딩 인코딩 방법")
바이트코드로 다시 복원한 다음 올바른 방법으로 데이터를 디코딩합니다. , 온라인 기사는 일반적으로 tomcat
Xml 코드
1로 구성됩니다. ="GBK"/>
Tomcat이 데이터를 얻은 후 지정된 URL 디코더를 사용할 수 있도록 합니다. URL 디코더 소개는 여기
(1) 게시물 제출
1. 클라이언트(브라우저) 방법 양식은 post 메소드를 사용하여 데이터를 인코딩하고 서버에 제출합니다.
post 방식으로 전송되는 데이터도 URL 인코딩이 필요한데 어떤 인코딩 방식을 사용하나요?
html 파일에 해당 폼이 위치한 세그먼트가 있는 경우 ;이면 게시물은 여기에 지정된 인코딩을 사용하여 인코딩됩니다. 일반적으로 모든 사람들은 이 코드가 웹 페이지를 해석하는 데 사용할 문자 세트를 브라우저에 알려주는 것이라고 생각합니다. 따라서 웹사이트에서는 문자가 깨지는 것을 방지하기 위해 이 코드를 HTML 코드의 앞부분에 배치합니다. 또 다른 기능도 있습니다: 양식의 게시 방법으로 제출된 데이터에 대한 URL 인코딩 인코딩 방법을 지정합니다. 여기에서 알 수 있듯이, get 메소드의 경우 브라우저에서 데이터를 인코딩하는 URL의 인코딩 방법은 브라우저 설정에 따라 결정되며(js로 일률적으로 지정할 수 있음), post 메소드의 경우 개발자가 지정하십시오.
2. 서버측(Tomcat)은 어떻게 데이터를 얻고 디코딩합니까?
Tomcat의 기본 설정을 사용하고 필터 등의 인코딩 설정을 하지 않으면 iso-8859-1을 사용하여 디코딩되지만 request.setCharacterEncoding("Character Set")이 유용할 수 있습니다.

위에서 언급한 tomcat의 전제는 요청 헤더에 인코딩 방법이 지정되어 있지 않다는 것이었습니다. 이런 식으로 코딩이 됩니다.
추천 기사가 2개 있으며, 주소는
URL 인코딩을 간단한 용어로 설명하세요:
http://www.cnblogs.com/ encain/articles/1321386.html;
포스트 메소드를 사용하여 양식에서 데이터를 제출할 때 문자가 깨지는 문제:
http://wanghuan8086.javaeye. com/blog/173869

html 파일에 양식이 있는 섹션이 있는 경우
게시물 제출 사용을 적극 권장합니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿