美文网首页
第二章 简单的HTTP协议

第二章 简单的HTTP协议

作者: 谁动了MyWorld | 来源:发表于2016-07-26 11:21 被阅读9次

    一 通过请求和响应的交互达成通信

    请求从客户端发出,最后服务器端响应请求并返回
    1.请求报文是由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成的

    GET /index.htm HTTP/1.1
    Host: hackr.jp
    

    上面是从客户端发送给某个HTTP服务器端的请求报文中的内容
    起始行开头是GET标识请求访问服务器的类型,称为方法(method).随后的字符串/index.htm指明了请求访问的资源对象.也叫请求URI.最后的HTTP/1.1,即HTTP的版本号,用来提示客户端使用的HTTP协议功能
    综合来看,这段请求内容的意思是:请求访问某台HTTP服务器上的/index.htm页面资源
    2.响应报文基本上由协议版本,状态码,用以解释状态码的原因短语,可选的响应首部字段以及实体主体构成

    HTTP/1.1 200 OK
    Data:Tue,10 Jul 2016 06:50:15 GMT
    Content-Length:362
    Content-Type:text/html
    
    <html>
    ...
    

    在接受到请求的服务器,会将请求内容的处理结果以响应的形式返回.
    在起始行开头的HTTP/1.1,表示服务器对应的HTTP版本
    然后是200 OK表示请求的处理结果的状态码(status code)和原因短语,下一行显示了创建响应的日期时间,是首部字段内的一个属性
    接着以一空行分割,之后的内容称为资源实体的主体(entity body).

    二 告知服务器意图的HTTP方法

    1.GET:获取资源
    2.POST:传输实体主体
    3.PUT:传输文件
    4.HEAD:获得报文首部
    5.DELETE:删除文件
    6.OPTIONS:询问支持的方法
    7.TRACK:追踪路径
    8.CONNECT:要求用隧道协议连接代理

    三 持久连接节省通信量

    1.持久连接
    1.1http协议的初始版本中,每进行一次http通信就要断开一次TCP连接.每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销
    1.2HTTP/1.1和一部分的HTTP/1.0增加了持久连接(HTTP keep-alive)的方法.持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态
    持久连接的好处在于减少了TCP连接的重复建立和断开造成的额外开销,减轻了服务器的负载,另外减少开销的那部分时间,使HTTP请求和响应能够更早的结束,这样Web页面的显示速度也就相应提高了.在HTTP/1.0中所有的连接默认都是持久连接

    2.管线化
    持久连接是的多数请求以管线化(pipelining)方式发送成为可能.以前发送请求后需等待并收到响应才能发送下一个请求.
    管线化技术能够做到同时并行发送多个请求,不需要一个接一个的等待响应了

    四 使用Cookie的状态管理

    1.HTTP协议是无状态协议.它不对之前发生过的请求和响应的状态进行管理.也就是说,无法根据之前的状态进行本次的请求处理.
    2.假设要求登陆认证的web页面,本身无法进行状态的管理(就是不记录已登陆的状态).那么每次跳转新页面不是要再次登陆,就是要在每次请求报文中附加参数来管理登陆状态.
    3.这样做的优点在于:不保存状态,减少服务器的CPU以及内存资源的消耗.
    4.为了保存HTTP无状态协议这个特征的同时又要解决类似的矛盾问题,引入了Cookie技术.Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态
    5.Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后再发送出去
    服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息

    相关文章

      网友评论

          本文标题:第二章 简单的HTTP协议

          本文链接:https://www.haomeiwen.com/subject/eiynjttx.html