재능인
244
2018-12-04 22:28:14
5
135

http 301 응답 질문드립니다...도움이 절실합니다ㅠㅠ...


현재 타웹서버에서 제웹서버로 post전송을 하고있습니다. 

예를들면 외부ip/test/1 의 url 경로로 보내고 있는데요, 

해당 url은 제 웹서버에서 만들어 놓았고 index.html 이 있으며 post전송을 수신하도록 되어있습니다. 

그런대 타웹서버에서 제웹서버로 post전송을하면 응답으로 

301 코드가 발생한다고합니다. 

구글링을해보니 요청한 정보가 영구적으로 옮겨졌다는 코드가 301이더라구요. 

이해가 안됩니다. 

저는 아무것도 한거없고 301코드를 발생한적도 없습니다. 
왜 301이 나는걸까요..?? 
해당 url은 존재하고 변경되지않았는데, 어떻게 301에러가 발생할수있는건가요? 

해결법 알려주실분 있나요?? 

도움이 절실해요..ㅠㅠㅠ 
부탁드립니다 선배님 

아래는 와이어샤크로 확인한 요청과 제가 응답한 로그입니다. (ip는 --로 대처했습니다.) 

-------------------------------------요청----------------------------------- 
POST /test/createData HTTP/1.1 
Accept: application/json 
Content-Type: application/json;charset=UTF-8 
Cache-Control: no-cache 
Pragma: no-cache 
User-Agent: Java/1.8.0_144 
Host: ---.--.-.---:8080 
Connection: keep-alive 
Content-Length: 293 

{"data":1118645} 


-------------------------------------응답----------------------------------- 
HTTP/1.1 301 Moved Permanently 
Date: Tue, 04 Dec 2018 12:55:12 GMT 
Server: Apache/2.4.33 (Win32) OpenSSL/1.1.0h PHP/7.2.5 
Location: http://---.--.-.---:8080/test/createData/ 
Content-Length: 362 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html; charset=iso-8859-1 

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>301 Moved Permanently</title> 
</head><body> 
<h1>Moved Permanently</h1> 
<p>The document has moved <a href="http://---.--.-.---:8080/test/createData/">here</a>.</p> 
<hr> 
<address>Apache/2.4.33 (Win32) OpenSSL/1.1.0h PHP/7.2.5 Server at ---.--.-.--- Port 8080</address> 
</body></html>

0
0
  • 답변 5

  • kenu
    42k
    2018-12-04 22:58:29

    307은 POST도 됩니다.


    1
  • 재능인
    244
    2018-12-04 23:05:02

    무슨말씀이시죠..??

    잘이해가안되서그렇습니다..

    0
  • kenu
    42k
    2018-12-05 01:41:03 작성 2018-12-05 01:41:25 수정됨

    타 웹서버 설정이 어떻게 되나요?

    redirect 부분이요.

    https://www.pmg.com/blog/301-302-303-307-many-redirects/

    0
  • 토토땅
    35
    2018-12-05 05:02:05
    브라우저에서 요청 시 정상적인 응답이 나오는지를 먼저 확인하시면 좋을 것 같고 이게 된다면 apache쪽에 redirection 관련하여 설정이 되어있을 것 같으니 그 부분을 확인해보심 좋을 것 같네요.
    0
  • 재능인
    244
    2018-12-05 09:47:43

    외부에서 /test/getdata 로 데이터를 post전송을 합니다.

    당황스럽게도 301에러가 발생하며 페이지 이동을 하고 /test/getdata/index.php를 GET 하더라구요.
    결과적으로
    post전송한 데이터를 수신하지 못합니다.

    무슨 이유인지 삽질하던 중
    제가 내부에서 내부로 /test/getdata/ 로 데이터를 post전송을 해보았습니다.
    데이터를 잘 수신하더라구요.
    /test/getdata로 post전송하면 역시나 301에러 발생하구요..

    그런대 외부에서 /test/getdata 의 url을 /test/getdata/ 로 바꿀수 없는상황입니다.

    이럴경우 어떻게해야하나요??


    내부적으로 외부에서 /test/getdata 로 요청한 url을 /test/getdata/ 로 뒤에 '/'를 추가할수 있나요?


    /test/getdata 에서 /test 경로에 .htaccess 파일을 생성 후

    RewriteEngine  on
    RewriteBase    /test/
    RewriteRule    ^getdata$  getdata/  [R]

    를 입력해서 저장하였습니다..

    위 방법이 틀렸는지 모르겠으나, 결과적으로는 변한게 없더라구요...

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.