了解HTTP和HTTPS

说明

本文通过参考其他优秀博文和谢希仁编著的《计算机网络》进行总结。

正文

HTTP

HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

万维网的大致工作过程:
    每个万维网网点都有一个服务器进程,它不断监听TCP的80端口,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。完成后释放连接。


HTTP规定在HTTP客户和HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用因特网邮件扩充,即“类MIME(MIME-like)”的响应组成。HTTP报文通常都使用TCP连接传送。


以具体的实例解释用户输入连接查找后发生的几个事件:
一用户在地址栏输入”http://www.tsinghua.edu.cn/publish/newthu/newthu_cnt/faculties/index.html“,其指向”清华大学院系设置“的页面。下面用HTTP/1.0具体说明:
    (1)浏览器分析连接指向页面的URL
    (2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址
    (3)域名系统DNS解析出清华大学服务器的IP地址为166.111.4.100
    (4)浏览器与服务器建立TCP连接(在服务器端IP地址是166.111.4.100,端口是80)
    (5)浏览器发出去文件命令:GET/cn/publish/newthu/newthu_cnt/faculties/index.html
    (6)服务器www.tsinghua.edt.cn给出响应,把文件index.html发送给浏览器
    (7)释放TCP连接
    (8)浏览器显示”清华大学院系设置“文件index.html中的所有文本

HTTP的特性:
无连接:虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要建立HTTP连接

无状态:也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时相同(假定现在服务器还没有把该页面更新),因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。该特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求

HTTP/1.0 采用非持续连接,导致服务器负担过重。
HTTP/1.1采用持续接连,就是服务器响应后一段时间仍保持连接,使用同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文。两种工作方式:非流水线方式和流水线方式


HTTP有两类报文:
请求报文:从客户向服务器发送的请求报文
响应报文:从服务器到客户的回答
区别:开始行不同, 在请求报文中叫请求行,在响应报文中叫状态行

特点:
请求行只有三个内容:方法,请求资源的URL,HTTP的版本

方法就是对所请求的对象的操作,这些方法实际上也就是一些命令
这里写图片描述

状态码
分为5大类:
1XX 表示通知信息
101 Continue/继续
102 Switching Protocols/转换协议

2XX表示成功
200 OK/正常
201 Created/已创建
202 Accepted/接收
203 Non-Authoritative Information/非官方信息
204 No Content/无内容
205 Reset Content/重置内容
206 Partial Content/局部内容

3XX 表示重定向
300 Multiple Choices/多重选择
301 Moved Permanently/永久移除
302 Found/找到
303 See Other/参见其它信息
304 Not Modified/未修正
305 Use Proxy/使用代理
306 Unused
307 Temporary Redirect/临时重定向

4XX 表示客户的差错
400 Bad Request/错误请求                                    409 Conflict/冲突
401 Unauthorized/未授权                                      410 Gone/已经不存在
402 Payment Required                                          411 Length Required/需要数据长度
403 Forbidden/禁止                                               412 Precondition Failed/先决条件错误
404 Not Found/未找到                                           413 Request Entity Too Large/请求实体过大
405 Method Not Allowed/方法为允许                    414 Request-URI Too Long/请求URI过长
406 Not Acceptable/无法访问                                415 Unsupported Media Tyep/不支持的媒体格式
407 Proxy Authentication/代理服务器认证要求      416 Requested Range Not Satisfiable/请求范围无法满足
408 Request Timeout/请求超时                             417 Expecation Failed/期望失败

5XX 表示服务器的差错
500 Internal Server Error/内部服务器错误
501 Not Implemented/未实现
502 Bad Gateway/错误的网关
503 Service Unavailable/服务器无法获得
504 Gateway Timeout/网关超时
505 HTTP Version Not Supported/不支持HTTP版本

HTTPS

     是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,它是一个URI scheme(抽象标识符体系),句法类同http:体系。
     用于安全的HTTP数据传输,https:URL表示它使用了HTTP,但HTTPS存在不同于HTTP默认端口及一个加密/身份认证层(在HTTP与TCP之间)。

HTTP与HTTPS的区别:
(1)HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费
(2)HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议
(3)HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
(4)HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全

HTTPS解决的问题:
信任主机的问题:采用HTTPS的服务器必须从CA申请一个用于证明服务器用途类型的证书,该证书只有用于对应的服务器的时候,客户端才信任此主机

通讯过程中的数据的泄密和被篡改

HTTPS的优点:
(1)使用HTTPS协议可认证用户和服务器,保证数据发送到正确的客户机和服务器
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTPS协议安全,可防止数据在传输过程中不被窃取,改变,确保数据的完整性
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本
(4)谷歌曾在2014年8月调整搜索引擎算法,并称”比起同等HTTPS网站,采用HTTPS加密的网站在搜索结果中的排名将会更高“

HTTPS的缺点:
(1)HTTPS协议的握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电
(2)HTTPS连接缓存不如HTTPS高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响
(3)SSL需交费,功能越强大的证书费用越高,个人网站、小型网站没有必要一般不会用
(4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个于域名,IPV4资源不可能支撑这个消耗
(5)HTTPS协议的加密范围比较有限,在黑客攻击,拒绝服务攻击、服务器劫持等方面几乎起不到什么作用,最关键的,SSL证书的信用链体系并不安全,特别是在某些可以控制CA根证书的情况下,中间人攻击一样可行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值