この行を実行すると 404 エラーが発生するのはなぜですか?
urllib2.urlopen("http://localhost/new-post#comment-29")
http://localhost/new-post#com-29を任意のブラウザで正常に閲覧できますが...
urlopen メソッドは "#" を含む URL を解析しませんか?
誰か知ってる?
この行を実行すると 404 エラーが発生するのはなぜですか?
urllib2.urlopen("http://localhost/new-post#comment-29")
http://localhost/new-post#com-29を任意のブラウザで正常に閲覧できますが...
urlopen メソッドは "#" を含む URL を解析しませんか?
誰か知ってる?
HTTPプロトコルでは、フラグメント(#
以降)はネットワーク経由でサーバーに送信されません。フラグメントはブラウザーによってローカルに保持され、サーバーの応答が完全に受信されると、ページ内の正確な場所を何らかの方法で「視覚的に特定」するために使用されます。 「現在」として表示されます(たとえば、返されたページがHTMLの場合、これはHTMLを解析し、最初の適切な<a>
フラグを探すことによって行われます)。
したがって、手順は次のとおりです。フラグメントを削除しurlparse.urlparse
ます。残りを使用してリソースをフェッチします。サーバー応答のcontent-typeヘッダーに基づいて適切に解析します。次に、最初のステップで保持したフラグメントを解析されたリソース内に配置することに基づいて、リソースの「現在のスポット」に関してプログラムが実行する視覚的なアクションを実行します。