>웹 프론트엔드 >프런트엔드 Q&A >Ajax 요청에서 post와 get의 차이점은 무엇입니까?

Ajax 요청에서 post와 get의 차이점은 무엇입니까?

WBOY
WBOY원래의
2022-07-01 17:04:253478검색

차이점: 1. Get은 제출된 양식의 ACTION 속성이 가리키는 URL에 매개변수 데이터 대기열을 추가하는 반면, post는 "HTTP 게시" 메커니즘을 사용하여 양식의 각 필드와 "HTML 헤더"에 해당 콘텐츠를 배치합니다. "를 붙여 함께 전송합니다. ACTION 속성이 가리키는 URL 주소로 이동합니다. 2. get 모드에서는 서버측에서 "Request.QueryString"을 사용하여 변수의 값을 가져옵니다. Post 모드에서는 서버측에서 "를 사용합니다. Request.Form'을 사용하여 제출된 데이터를 가져옵니다.

Ajax 요청에서 post와 get의 차이점은 무엇입니까?

이 기사의 운영 환경: windows10 시스템, javascript1.8.5&&html5 버전, Dell G3 컴퓨터.

Ajax 요청 시 post와 get의 차이점은 무엇인가요?

1. Get은 제출된 양식의 ACTION 속성이 가리키는 URL에 매개변수 데이터 대기열을 하나씩 추가합니다. , 도착 URL에서 볼 수 있습니다. Post는 HTTP 게시 메커니즘을 사용하여 양식의 각 필드와 해당 콘텐츠를 HTML HEADER에 배치하고 이를 ACTION 속성이 가리키는 URL 주소로 전송합니다. 사용자는 이 프로세스를 볼 수 없습니다.

2. get 메소드의 경우 서버는 Request.QueryString을 사용하여 변수 값을 얻습니다. post 메소드의 경우 서버는 제출된 데이터를 얻기 위해 Request.Form을 사용합니다. 요청을 사용하여 두 가지 방법으로 매개변수를 얻을 수 있습니다.

3. get을 통해 전송되는 데이터의 양은 작으며 2KB를 초과할 수 없습니다. 우편으로 전송되는 데이터의 양은 상대적으로 크며 일반적으로 기본적으로 제한이 없습니다. 하지만 이론적으로는 서버마다 다릅니다.

4. Get 보안은 매우 낮고 사후 보안은 높습니다.

5. 즉, 작업 페이지 끝에 있는 매개변수 목록은 무시되지만 다릅니다.

추가로

Get 요청에는 다음과 같은 특징이 있습니다. 일반적으로 물음표를 사용하여 URL에 데이터를 추가하고 서버에 전달합니다. URL 주소의 끝과 데이터 매개변수의 시작을 나타냅니다. 다음 매개변수의 각 데이터 매개변수는 "이름 = 값"의 형태로 나타나며, 매개변수는 커넥터 &로 구분됩니다.

Post 요청의 특징은 다음과 같습니다. 데이터는 HTTP 본문에 배치되며 & 연결 방법 및 구분 기호 방법을 포함하여 여러 가지 방법으로 구성됩니다. 매개변수를 숨기고 많은 양의 데이터를 전송할 수 있습니다. 더 편리합니다.

간단히 말하면, 양식을 제출할 때 일반적으로 post를 사용합니다. 더 큰 데이터 파일을 전송하려면 post를 사용해야 합니다. 전달된 값이 매개변수 모드에서만 필요한 경우(값이 2KB보다 크지 않음) get 메소드를 사용하십시오.

그러므로 두 Ajax 제출의 사용법은 자연스럽게 명확해집니다.

지식 확장:

그럼 받기와 게시를 선택하는 방법은 무엇입니까?

get 요청의 목적은 서버에서 목록을 가져오기 위한 몇 가지 매개변수를 서버에 제공하는 것입니다. 예: list.aspx?page=1, 이는 첫 번째 페이지에서 데이터를 가져오는 것을 의미합니다

  • 호출은 서버에서 데이터를 검색하는 것입니다. get을 사용할 때 주의해야 할 또 다른 사항은 검색할 값이 시간과 업데이트 프로세스에 따라 변경되는 경우 get 호출에 임의의 숫자나 타임스탬프를 추가해야 한다는 것입니다. 후속 호출은 이전의 잘못된 캐싱을 사용하지 않습니다. post에 비해 get은 더 간단하고 빠르며 대부분의 상황에서 작동합니다.

post 요청의 목적은 일부 매개변수를 서버에 보내는 것입니다.

  • 캐시 파일을 사용할 수 없습니다(서버의 파일 또는 데이터베이스 업데이트). post

  • 를 사용하여 대량의 데이터를 보냅니다. 서버로(게시물에는 데이터 용량 제한이 없음), post

  • 를 사용하여 알 수 없는 문자가 포함된 사용자 입력을 보낼 때 post는 get

get보다 더 안정적이고 신뢰할 수 있습니다. get의 목적은 정보를 얻는 것임을 알고 있습니다. 이름처럼요. 읽고 싶은 페이지에 정보를 표시하도록 설계되었습니다. 브라우저는 get 요청의 실행 결과를 버퍼링합니다. 동일한 get 요청이 다시 발행되면 브라우저는 전체 요청을 다시 실행하는 대신 버퍼링된 결과를 표시합니다. 이 프로세스는 브라우저의 처리와 다르지만 get 호출을 보다 효율적으로 만들기 위해 의도적으로 설계되었습니다. get 호출은 페이지에 표시할 데이터를 검색합니다. 데이터는 서버에서 변경되지 않으므로 동일한 데이터를 다시 요청하면 동일한 결과를 얻게 됩니다.

서버 정보를 업데이트해야 하는 경우에는 게시 방법을 사용해야 합니다. 예를 들어, 호출이 서버에 저장된 데이터를 변경하는 경우 두 번째 사후 호출의 값이 첫 번째 호출의 값과 다르기 때문에 두 개의 동일한 사후 호출에서 반환된 결과가 완전히 다를 수 있습니다. 사후 호출은 일반적으로 이전 응답의 캐시를 유지하는 대신 서버에서 응답을 가져옵니다.

get request

oBtn.onclick = function() {
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
/*
1.缓存 在url?后面连接一个随机数,时间戳
2.乱码 编码encodeURI
*/
xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&' + new Date().getTime(),true);
xhr.send();
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
}

post request

oBtn.onclick = function() {
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open('post','2.post.php',true);
//post方式,数据放在send()里面作为参数传递
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型
//post没有缓存问题
//无需编码
xhr.send('username=刘伟&age=30');
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
}

【관련 튜토리얼 추천:AJAX 비디오 튜토리얼

위 내용은 Ajax 요청에서 post와 get의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.