网络基础-HTTP

最近Rails项目部署的过程中遇到网络端口的问题及用到了http网络协议的知识,于是决定对这块知识进行回顾和重新梳理,这里推荐韩立刚老师的《计算机网络原理》一书,讲的很明白。以下为这次学习到的主要内容:

  • HTTP( Hyper Text Transfer Protocol)
  • WWW( World Wide Web),互联网上的网站共同组成万维网。

  • URL( Uniform Resource Locator),统一资源定位符,网站的网址。URL一般由四个部分组成:<协议>://<主机>:</端口>/<路径>,例如http://106.14.190.181:80/wx

一、HTTP协议版本:

1- HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,既不跟踪每个客户也不记录过去的请求。

2- HTTP1.1支持持续连接,即服务器在发送响应后,仍然在一段时间内保持这条TCP连接,使得同一个浏览器和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。HTTP1.1的持续连接有两种工作方式,即非流水线方式和流水线方式。非流水线方式(理解为迅雷一次只能下载一个文件)的特点是客户在收到前一个响应后才能发送写一个请求。因此,在TCP连接建立后,客户每访问一次对象都要用去一个往返时间RTT,这种方式浪费服务器资源。流水线的特点(理解为迅雷一次可以下载多个文件)是客户在收到HTTP响应报文之前就能够发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文,这种方式使TCP连接中的空闲时间减少,提高了文档的下载效率。

3- HTTP请求报文与响应报文
(1) 请求报文:从客户端向服务器发送请求报文
请求报文由三个部分组成:分别是请求行,首部行,实体主体。请求报文的第一行“请求行”只有三个内容,即方法、请求资源的URL,以及HTTP的版本。方法就是对对象的操作,HTTP1.1协议中定义了八中方法,来表明对Request-URL指定资源的不同操作方式:GET、POST、PUT、DELETE、HEAD、TRACE、CONNECT、OPPIONS
(2)响应报文:从服务器到达客户端的应答

二、Cookie

HTTP是一种无状态的协议,当你注册登录一个网站后,当下次再打开这个网站后,需要再次输入账号与密码进行身份验证,服务器仅从网络连接上无从知道你的曾经登录的身份。如果希望服务器读取你的曾经登录的身份,那就需要在用户输入账号和密码后,服务器在用户的计算机存放一个通行证,来记录用户的身份和状态。以后再访问,网站(服务器)就会先读取客户端的通行证。服务器存放在客户端(浏览器)的通行证通常被称为cookie。

cookie实际上是一小段的文本信息(说明可以进行拷贝,也就是在其他浏览器导入cookie之后不用输入账号和密码就可以登录了)。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie,客户端把浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器吧请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户身份和状态。服务器还可以根据需要修改cookie的内容。

三、通过代理服务器访问网站

代理服务器英文全称为Proxy Server,其功能就是代理网络用户去取得网络信息。我们可以配置计算机通过Web代理服务器访问Web站点,而不直接访问网站。

使用代理服务器的场景:
(1)使用代理服务器,绕过防火墙封锁。
国内不允许网民访问国外的非法网站,在我国的防火墙上设置了拦截到这些网站的流量。但是国外有很多的web代理服务器,国内用户可以设置浏览器使用国外的代理商服务器,然后访问非法网站,就能成功。现在有很多“翻墙”软件,其实质就是使用国外代理服务器绕过国内封锁,故称为“翻墙”。
(2)提高访问速度
通常代理服务器可以缓存用户访问过的内容,当其他用户再访问相同的URL时,由代理服务器直接从缓存中找到要访问的信息,传给用户,已提高访问速度。例如,在企业内网部署一个Web代理服务器,能节省上网带宽。
(3)隐藏真实IP
上网者也可以通过这种方法隐藏自己的IP。有些网站的论坛会记录发帖人的IP地址。如果你不打算让论坛记录你真是的IP地址,就可以使用代理服务器访问该网站,发帖,这样只会记录下代理的地址,从而隐藏自己的IP地址。

国内外有很多免费的代理服务器,例如西刺免费代理。上面可以看到免费的代理服务器,在浏览器中设置使用这些代理服务器访问Internet。