고객이 양식을 제출할 수있는 웹 사이트를 운영하고 있습니다. 나는 PHP를 서버 측에서 사용하고 있고 POST 메소드 (대형 폼)를 사용하고있다. 문제는 가끔 내 웹 서버에 요청이 게시 정보없이 GET 요청으로 제공된다는 것입니다. 이 문제는 양식이 주어진 고객 위치에서 제출되고 문제가 간헐적 일 때만 발생합니다 (대부분의 경우 시간이 걸립니다).PHP : 인증 서버로 인해 POST 데이터가 손실됩니다.
피들러를 사용하여 어떤 일이 일어나고 있는지 판단하지만 해결 방법을 생각할 수 없습니다. 누군가가 아이디어를 가지고 있는지 보려면 stackoverflow에 게시하십시오. 다음
기본적으로, 시퀀스는 다음
1- POST 요청은 모든 적절한 데이터가 전송된다.
2 POST 요청이 인증 프록시 서버에 의해 가로 챕니다.
3- 프록시 서버는 POST 요청에 HTTP 302 응답을 보내고 인증을 위해 다른 내부 주소로 리디렉션합니다.
4- 인증 거래
5- 프록시 서버가 (302)가 원래 요청을 리다이렉트 마지막 인증 요청을 리다이렉트 답 (401 응답으로, 두 GET 요청) 일어난다.
6 그러나 브라우저는 원본 요청을 POST 요청 대신 POST 정보가없는 GET 요청으로 보내며 원래 요청을 보냈습니다.
최종 결과는 사용자에게 빈 페이지이며 양식 데이터가 손실됩니다.
원본 요청이 POST인데도 URL에 몇 개의 매개 변수가 포함되어있을 수 있습니까? (아마도 브라우저는이 때문에 GET이라고 가정합니까?)?
정상적인 동작입니까? 나는 이것이 표준 (브라우저는 GET으로 302에 항상 대답)에 따라 다르다는 것을 읽었지만, 이런 상황에서 POST 요청에 대한 해결책이 없기 때문에 이것이 사실이라고 믿을 수 없다.
사용자 환경이 좋지 않을 수있는 몇 가지 방법이 있어야합니다. 당신이 무슨 생각을하는지 제게 알려주세요.
이안에게 답해 주셔서 감사합니다. 문제는 게시 요청을 INTERCEPT하는 인증 프록시 서버를 제어 할 수없고 인증 시퀀스를 시작하기 위해 302를 반환한다는 것입니다. 그래서 나는 두 가지 접근 방식을 찾고있었습니다. 1- 인증 순서를 피하는 방법을 찾거나 POST 데이터를 어느 정도 복구합니다 (브라우저 기록에 계속 표시됨). 그러나 지금까지는 성공하지 못했습니다. – PCJISM