POST는 변경 방문으로 간주됩니다(브라우저는 POST 제출이 변경되었을 것으로 생각함)
GET 방지 URL 뒤에 멱등성 액세스가 추가되나요? +new Date();, [간단히 말하면 방문할 때마다 URL 문자열이 달라집니다]
WEB 페이지를 디자인할 때도 이 원칙을 따라야 합니다
2: 1. Ajax에 대해 이야기하기 Get과 Post의 차이점
Get 방식:
get 방식을 사용하여 단순 데이터를 전송하지만 일반적으로 크기가 1KB로 제한되며, url에 데이터를 첨부하여 전송한다(http 헤더 전송) 즉, 브라우저는 각 양식 필드 요소와 해당 데이터를 요청 줄의 리소스 경로 끝에 URL 매개변수 형식으로 추가합니다. 가장 중요한 것은 클라이언트의 브라우저에 캐시되어 다른 사람들이 브라우저 기록에서 계좌 번호 및 비밀번호와 같은 고객의 데이터를 읽을 수 있다는 것입니다. 따라서 어떤 경우에는 get 메소드가 심각한 보안 문제를 일으킬 수 있습니다.
포스트 방법:
POST 방법을 사용할 때 브라우저는 각 양식 필드 요소와 해당 데이터를 URL의 매개변수로 전달하는 대신 HTTP 메시지의 엔터티 콘텐츠로 웹 서버에 보냅니다. 주소를 사용하십시오. POST로 전송되는 데이터의 양은 GET으로 전송되는 것보다 훨씬 큽니다.
간단히 말하면 GET 방식은 데이터 전송량이 적고 처리 효율성이 높으며 보안성이 낮고 캐시된다는 점에 반해 POST는 그 반대입니다.
get 메소드 사용 시 주의사항:
1 get 요청(또는 관련 URL 전달 매개변수)의 경우 전달된 매개변수는 먼저 encodeURIComponent 메소드로 처리되어야 합니다. 예: var url = "update.php ?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+"&id=1" ;
Post 메서드 사용 시 참고 사항:
1. 헤더의 Context-Type을 application/x-www-form-urlencode로 설정하여 서버가 엔터티에 매개변수 변수가 있음을 알 수 있도록 합니다. 일반적으로 SetRequestHeader("Context-Type","application/x-www) -form- urlencoded;"). 예:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2. 매개변수는 각각 이름/값에 해당하는 키-값 쌍입니다. 앰퍼샌드를 사용하여 값을 구분합니다(예: var name=abc&sex=man&age=18). var name=update.php?
abc&sex=man&age=18 및 var name=?abc&sex=man&age=18은 다음과 같습니다. 둘 다 같은 방식으로 작성되었습니다.
3. 매개변수는 Send(매개변수) 메소드로 전송됩니다. 예: xmlHttp.send(name); get 메소드인 경우 직접 xmlHttp.send(null) );
4. 서버 종료 요청 매개변수는 Get과 Post를 구별합니다. get 메소드인 경우 $username = $_GET["username"]; post 메소드인 경우 $username = $_POST["username"];
AJAX 잘못된 코드 문제
잘못된 코드 생성 이유:
1. xtmlhttp에서 반환된 데이터의 기본 문자 인코딩은 utf-8입니다. 클라이언트 페이지가 gb2312 또는 기타 인코딩된 데이터인 경우 잘못된 문자가 생성됩니다.
2 . post 메소드로 제출된 데이터의 기본 문자 인코딩은 utf입니다. 서버가 gb2312 또는 기타 인코딩된 데이터인 경우 잘못된 데이터가 생성됩니다.
해결 방법은 다음과 같습니다.
1. 인코딩, 서버에서 출력 스트림 인코딩 지정
2. 서버 측 및 클라이언트는 모두 utf-8 인코딩을 사용합니다
gb2312:header('Content-Type:text/html;charset=GB2312') ;
utf8:header('Content-Type:text/ html;charset=utf-8');
참고: 위 방법을 따른 후에도 여전히 잘못된 문자가 반환되는 경우 확인하세요. get 요청(또는 URL 전달 매개변수와 관련된 모든 것)의 경우 전달된 매개변수는 encodeURIComponent 메소드에 의해 먼저 처리되어야 합니다.