<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HTTP on Time Friend</title><link>https://time-friend.com/zh/tags/http/</link><description>Recent content in HTTP on Time Friend</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 29 Dec 2018 16:14:25 +0000</lastBuildDate><atom:link href="https://time-friend.com/zh/tags/http/index.xml" rel="self" type="application/rss+xml"/><item><title>聊聊HTTP的X-Forwarded-For 和 X-Real-IP</title><link>https://time-friend.com/zh/archive/talking-about-http-x-forwarded-for-and-x-real-ip/</link><pubDate>Sat, 29 Dec 2018 16:14:25 +0000</pubDate><guid>https://time-friend.com/zh/archive/talking-about-http-x-forwarded-for-and-x-real-ip/</guid><description>&lt;p&gt;最近在看&lt;a href="https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=%E8%B0%83%E7%94%A8%E5%89%8D%E9%A1%BB%E7%9F%A5"&gt;网易云音乐API nodejs&lt;/a&gt;这个项目的文档的时候.&lt;/p&gt;
&lt;p&gt;发现调用须知里,有一段是这样的说的:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;由于网易限制,此项目在国外服务器上使用会受到限制,如需解决 , 可使用大陆服务器或者使用代理 , 感谢 @hiyangguo提出的解决方法: 在 &amp;lsquo;util.js&amp;rsquo; 的 &amp;lsquo;headers&amp;rsquo; 处增加 X-Real-IP&amp;rsquo;:&amp;lsquo;211.161.244.70&amp;rsquo; // 任意国内 IP 即可解决&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;网易云音乐的接口调用对国外加了限制,想要跳过这样的限制的话,就必须在headers里修改&lt;code&gt;X-Real-IP&lt;/code&gt; 就可以解决.&lt;/p&gt;
&lt;p&gt;那&lt;code&gt;X-Real-IP&lt;/code&gt;是什么?是干什么用的?&lt;/p&gt;
&lt;h1 id="x-real-ip"&gt;X-Real-IP&lt;/h1&gt;
&lt;p&gt;X-Real-IP，这是一个自定义头部字段。X-Real-IP 通常被 HTTP 代理用来表示与它产生 TCP 连接的设备 IP，这个设备可能是其他代理，也可能是真正的请求端。需要注意的是，X-Real-IP 目前并不属于任何标准，&lt;/p&gt;
&lt;p&gt;跟他非常相关的,还有一个&lt;code&gt;X-Forwarded-For&lt;/code&gt;的自定义头部字段.&lt;/p&gt;
&lt;h1 id="x-forwarded-for"&gt;X-Forwarded-For&lt;/h1&gt;
&lt;p&gt;X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1（RFC 2616）协议并没有对它的定义，它最开始是由 Squid 这个缓存代理软件引入，用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准，被各大 HTTP 代理、负载均衡等转发服务广泛使用，并被写入 RFC 7239（Forwarded HTTP Extension）标准之中。&lt;/p&gt;
&lt;p&gt;格式:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;X-Forwarded-For: client, proxy1, proxy2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果一个 HTTP 请求到达服务器之前，经过了三个代理 Proxy1、Proxy2、Proxy3，IP 分别为 IP1、IP2、IP3，用户真实 IP 为 IP0，那么按照 XFF 标准，服务端最终会收到以下信息：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;X-Forwarded-For: IP0, IP1, IP2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;X-Forwarded-For&lt;/code&gt; 会记录用户ip与每次转发用的代理服务器ip.&lt;/p&gt;
&lt;p&gt;而这时,我们之前提到的 &lt;code&gt;X-Real-IP&lt;/code&gt; 会是ip0,是用户发送请求的ip地址.&lt;/p&gt;</description></item><item><title>聊聊HTTP的MIME</title><link>https://time-friend.com/zh/archive/talking-about-http-mime/</link><pubDate>Wed, 26 Jul 2017 16:14:25 +0000</pubDate><guid>https://time-friend.com/zh/archive/talking-about-http-mime/</guid><description>&lt;h2 id="mime是什么"&gt;MIME是什么?&lt;/h2&gt;
&lt;p&gt;MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型;&lt;/p&gt;
&lt;p&gt;在最早的HTTP协议中,没有附加的数据类型信息.&lt;/p&gt;
&lt;p&gt;所有传送的数据都被客户程序解释为超文本标记语言HTML 文档，而为了支持多媒体数据类型，HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;每个MIME类型由两部分组成，前面是数据的大类别，例如声音audio、图象image等，后面定义具体的种类。&lt;/p&gt;
&lt;h2 id="常见的mime类型通用型"&gt;常见的MIME类型(通用型)：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;超文本标记语言文本 .html text/html&lt;/li&gt;
&lt;li&gt;xml文档 .xml text/xml&lt;/li&gt;
&lt;li&gt;XHTML文档 .xhtml application/xhtml+xml&lt;/li&gt;
&lt;li&gt;普通文本 .txt text/plain&lt;/li&gt;
&lt;li&gt;RTF文本 .rtf application/rtf&lt;/li&gt;
&lt;li&gt;PDF文档 .pdf application/pdf&lt;/li&gt;
&lt;li&gt;Microsoft Word文件 .word application/msword&lt;/li&gt;
&lt;li&gt;PNG图像 .png image/png&lt;/li&gt;
&lt;li&gt;GIF图形 .gif image/gif&lt;/li&gt;
&lt;li&gt;JPEG图形 .jpeg,.jpg image/jpeg&lt;/li&gt;
&lt;li&gt;au声音文件 .au audio/basic&lt;/li&gt;
&lt;li&gt;MIDI音乐文件 mid,.midi audio/midi,audio/x-midi&lt;/li&gt;
&lt;li&gt;RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio&lt;/li&gt;
&lt;li&gt;MPEG文件 .mpg,.mpeg video/mpeg&lt;/li&gt;
&lt;li&gt;AVI文件 .avi video/x-msvideo&lt;/li&gt;
&lt;li&gt;GZIP文件 .gz application/x-gzip&lt;/li&gt;
&lt;li&gt;TAR文件 .tar application/x-tar&lt;/li&gt;
&lt;li&gt;任意的二进制数据 application/octet-stream&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="用于wap服务器的mime类型有"&gt;用于WAP服务器的MIME类型有：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MRP文件（国内普遍的手机）.mrp application/octet-stream&lt;/li&gt;
&lt;li&gt;IPA文件(IPHONE) .ipa application/iphone-package-archive&lt;/li&gt;
&lt;li&gt;Debian软件包格式 .deb application/x-debian-package-archive&lt;/li&gt;
&lt;li&gt;APK文件(安卓系统) .apk application/vnd.android.package-archive&lt;/li&gt;
&lt;li&gt;CAB文件(Windows Mobile) .cab application/vnd.cab-com-archive&lt;/li&gt;
&lt;li&gt;XAP文件(Windows Phone 7) .xap application/x-silverlight-app&lt;/li&gt;
&lt;li&gt;SIS文件(symbian平台/S60V1) .sis application/vnd.symbian.install-archive *&lt;/li&gt;
&lt;li&gt;SISX文件(symbian平台/S60V3/V5) .sisx application/vnd.symbian.epoc/x-sisx-app&lt;/li&gt;
&lt;li&gt;JAR、JAD文件(JAVA平台手机通用格式) .jar .jad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;服务器在发送真正的数据之前，就要先发送标志数据的MIME类型的信息，这个信息使用Content-type关键字进行定义.&lt;/p&gt;</description></item><item><title>HTTP的URI格式说明</title><link>https://time-friend.com/zh/archive/http-uri-format/</link><pubDate>Tue, 25 Jul 2017 16:14:25 +0000</pubDate><guid>https://time-friend.com/zh/archive/http-uri-format/</guid><description>&lt;p&gt;下面是URI的各个组成部分&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; 权限 路径
 ┌───────────────┴───────────────┐┌───┴────┐
 abc://username:password@example.com:123/path/data?key=value&amp;amp;key2=value2#fragid1
 └┬┘ └───────┬───────┘ └────┬────┘ └┬┘ └─────────┬─────────┘ └──┬──┘
 协议 用户信息 主机名 端口 查询参数 片段
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>