[Tickets #10749] POST full text of the web page being bookmarked with the bookmarklet
bugs at horde.org
bugs at horde.org
Sat Nov 12 23:04:56 UTC 2011
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/10749
------------------------------------------------------------------------------
Ticket | 10749
Created By | Chuck Hagenbuch <chuck at horde.org>
Summary | POST full text of the web page being bookmarked with
| the bookmarklet
Queue | Trean
Type | Enhancement
State | New
Priority | 1. Low
Milestone |
Patch |
Owners |
------------------------------------------------------------------------------
Chuck Hagenbuch <chuck at horde.org> (2011-11-12 23:04) wrote:
To avoid not being able to save full content for the web page being
bookmarked if it's password protected, grab it with javascript and
send it along to trean. From
http://www.randsinrepose.com/archives/2011/01/25/interview_marco_arment.html:
What part of Instapaper's infrastructure are you most proud of?
The bookmarklet has a mechanism to save pages from sites that require
logins for full content, such as the Wall Street Journal and Harper's,
by sending a copy of the page's HTML from the customer's browser to
the server. It's like automating the "Save as..." menu item: if you
have your own account for these sites and can see the page in your
browser, you can save it to Instapaper.
The way it does this is ridiculous: instead of calling a simple GET
request to save the page, since an entire page's contents would
quickly overrun any URL-length limits in the stack, it injects a FORM
with a POST action and populates a hidden value with the page contents.
But form-data requests from browsers aren't Gzip-compressed, so the
resulting data is huge and needs to be sent over people's (often slow,
often mobile) upstream connections. So I found an open-source DEFLATE
implementation in Javascript - really - and the bookmarklet compresses
the page data right there in the browser before sending it.
The whole procedure is hideously complex, but works incredibly well.
More information about the bugs
mailing list