2016将html发送到服务器
问题描述:
我抓取网页数据(认为类似的问题为instapaper)并将其发送回LOCAL服务器,而不是通过网络。两者都将在同一台机器上,但我仍然希望使它更安全一些。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> <body bgcolor="#FFFFFF" background="../img/1bgbottom.gif" text="#000000" link="#2100c5" vlink="#2100c5" alink="#bd0031">
有任何简单的方法来采取一个HTML页面(总之是丑陋的),并将其编码在一个可靠的URI?
答
您正在寻找encodeURIComponent()
。对于encodeURI()
,从来没有一个很好的理由(我知道无论如何)。
一旦你使用encodeURIComponent()
,它可以被解码原来的样子,让你到底是什么在发送。
在另一方面,我不知道,你这样做是编码,但如果你打算在查询字符串中使用它,注意有限的查询字符串限制,通常为4k或64k。 (至少有时你可以配置限制服务器端。)
你不能只编码为base64?附:如果使用GET方法命中查询字符串长度限制,则始终可以切换到POST并发送所有数据。 –
@LukasLiesis当然,base64是另一种保证33%开销的二进制兼容性的方法。 – Brad