2016-09-15 5 views
2

웹 페이지 데이터를 가져 와서 (비슷한 문제가 instapaper으로 생각) 웹을 통하지 않고 다시 로컬 서버로 보냅니다. 두 시스템 모두 같은 시스템에 있지만, 여전히 좀 더 보안을 강화하고 싶습니다.2016 서버로 html 보내기

저는 현재 웹 페이지에서 html을 가져 와서 URI로 인코딩하려고합니다. 여기에 문제가 있습니다. 기능이 encodeURI 인 HTML 페이지의 일부 콘텐츠가 이미 인코딩되어 있고 일부 콘텐츠가 인코딩되어 있지 않기 때문에 제대로 작동하지 않습니다. HTML 자체와 같습니다. (decades old website that still exists)에서 예를 들어 보겠습니다.

이 코드 :

<title>You've Got Mail</title> 필요가에 인코딩 할 : "%3Ctitle%3EYou've%20Got%20Mail%3C/title%3E"

그러나 일부 사전 인코딩 (encodeURI를 호출하기 전에)로 제공 :

<noframes> &lt;body bgcolor="#FFFFFF" background="../img/1bgbottom.gif" text="#000000" link="#2100c5" vlink="#2100c5" alink="#bd0031"&gt;

이 있습니까 HTML 페이지를 (모든면에서) 깔끔하게 포착하고이를 URI로 안전하게 인코딩하는 간단한 방법?

답변

0

찾고 계시는 분은 encodeURIComponent()입니다. encodeURI()에 대한 좋은 이유가 없습니다. (어쨌든 알고 있습니다.) 당신이 encodeURIComponent()를 사용하면

, 그것은있는 그대로, 전송 정확히 무엇을 얻고. 다른 주에

당신이 계획하는 경우에, 나는 당신이 인코딩을하고있는 곳 모르겠지만 디코딩 할 수있다 이것을 쿼리 문자열에 사용하면 쿼리 문자열 제한이 유한 한 4k 또는 64k가 있음을주의하십시오. (때로는 제한 서버 측을 구성 할 수 있습니다.)

+0

그냥 base64로 인코딩 할 수 없습니까? 추신. GET 메서드를 사용하여 쿼리 문자열 길이 제한에 도달하면 항상 POST로 전환하고 모든 데이터를 보낼 수 있습니다. –

+0

@LukasLiesis 물론 base64는 33 %의 오버 헤드에서 바이너리 호환성을 보장하는 또 다른 방법입니다. – Brad

관련 문제