浅谈HTTP与HTTPS(上)

HTTP

http协议(超文本传输协议)是应用层的一个知名协议,因而被广泛运用,它有两个特点

1.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。

2.无状态,即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后,不会记录信息(为了快速处理大批事务)

http经历了好几代的发展,让我们来见证一下它的重大发展

 

HTTP/0.9:协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源。

 

HTTP/1.0:在0.9版本上做了进步,增加了请求方式POST和HEAD;不再局限于0.9版本的HTML格式,根据Content-Type可以支持多种数据格式,但是每次TCP连接只能发送一个请求。1.0版本的工作方式是每次TCP连接只能发送一个请求,当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接

 

这里说一下这三种重要的方法之间的区别:

get:请求服务器URL位置的资源    查询字符串再URL中,不安全,且有一点的大小限制,一般是2048个字符串      

URL = 协议 + 用户信息 +主机名 +端口 +路径+查询字符串+定位片段

post:向服务器URL的位置传输资源,查询字符串再body中,没有长度限制

head:方法和get一样,只是返回资源的头部信息

 

HTTP/1.1: 在HTTP1.1中新增了24个错误状态响应码,支持断点续传,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。解决了1.0版本的keepalive问题,(持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。)一个TCP连接可以允许多个HTTP请求,解决了无连接的缺点

 

 

为了解决无状态的缺点:

http1.1使用 Cookie 的状态管理(无状态的缺点:HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的 Web 页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面不是要再次登录,就是要在每次请求报文中附加参数来管理登录状态。)

浅谈HTTP与HTTPS(上)

浅谈HTTP与HTTPS(上)

浅谈HTTP与HTTPS(上)

2012年google如一声惊雷提出了SPDY的方案,优化了HTTP1.X的请求延迟,解决了HTTP1.X的安全性,具体如下:

1.请求优先级(request prioritization)。多路复用带来一个新的问题是,在连接共享的基础之上有可能会导致关键请求被阻塞。SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。比如浏览器加载首页,首页的html内容应该优先展示

2.基于HTTPS的加密协议传输,大大提高了传输数据的可靠性。(HTTPS)

 

关于这里的HTTP报文格式,这里就不再说了,这里再说说通信数据转发程序:代理服务器

 

浅谈HTTP与HTTPS(上)

 

 

二、代理服务器的优点:

1.突破自身IP访问限制,访问国外站点或者其他之前不能访问的站点。

2.提高访问速度:通常代理服务器都设置了一个较大的硬盘缓冲区,当有外界的信息通过的时候,同时也将其保存在缓冲区中,当其他用户在访问相同的信息时,则直接有缓冲区取出信息,传给用户,以提高访问速度

3.链接内网与Internet,充当防火墙:因为所有的内部网用户通过代理服务器访问外界时,只映射一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限

4.隐藏真实IP:上网者可以通过这种方式隐藏自己的IP,以免受到攻击;