超文本传送协议HTTP

1.什么是HTTP?

HTTP是面向事务的应用层协议,是万维网上能够可靠地交换文件(包括文本,声音,图像等各种多媒体文件)的重要基础;

2.HTTP报文种类以及结构

  • 请求报文-------从客户向服务器发送请求报文

      

       请求行包括方法,URL,协议版本,方法就是对所请求的对象进行的操作,实际上是一些命令,请求报文的类型是由它所           采用的方法决定的。

      方法 eg:OPTION  请求一些选项的信息

                      GET  请求读取由URL所标志的信息

                      HEAD  请求读取由URL所标志的信息的首部

                      POST  给服务器添加信息

                      PUT 在指明的URL下存储一个文档

                      DELETE 删除指明的URL所标志的资源

                      TRACE  用来进行环回测试的请求报文

                      CONNECT  用于代理服务器

get post 的区别

1.get使用URL或cookie传参,而post将数据,放在body中。?name=Bob&age=18
2.get的URL会有长度上的限制,post可以传输很多数据(但是为了服务器安全考虑post的长度也有限制,但是依旧比get长很多)
3.post比get安全

     下面是一个HTTP请求报文

      GET /http/http-tutorial.html HTTP/1.1  (请求行)

      Host www.runoob.com  (首部行,主机域名)

  • 响应报文-------从服务器到客户的回答

       

       状态行包括版本,状态码,解释状态码的简单短语

       状态码都是三位数,分为5类,大致分为

       1xx表示通知信息,如请求收到了或正在进行处理

        2xx表示成功,如接受或知道。

        3xx表示重定向,如要完成请求还必须采取进一步的行动

        4xx表示客户的差错,如请求中错误的语法或不能完成

        5xx表示服务器的错误,如服务器失效无法完成请求

        下面是一个HTTP响应报文

        HTTP/1.1 301 Moved Permanently

        Location  http://www.runoob.com//http/http-tutorial.html

3.HTTP操作过程

    (1)万维网大致工作过程

       HTTP使用面向连接的TCP作为传输层协议,保证数据的可靠传输,HTTP协议本身是无连接的

(2)浏览器请求一个万维网文档到收到整个文档所需的时间:

  HTTP协议首先要和服务器建立TCP连接,这需要使用三报文握手,当建立TCP连接的三报文握手的前两部分完成后(即经过了一个RTT时间后),万维网客户就把HTTP请求报文,作为建立TCP连接的是三报文握手中的第三个报文的数据,发送给服务器。服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。因此可以看出一个万维网文档所需的时间是该文档的传输时间(与文档成正比)加上两倍往返时间RTT(一个用于连接TCP连接,一个用于请求和接收万维网文档)。

这也是HTTP/1.0的主要缺点,就是没请求一个文档就要有两倍RTT的开销,另一个就是万维网客户和服务器每一次建立新的TCP连接都要分配缓存和变量。

HTTP/1.1协议使用持续连接,持续连接是指万维网服务器在发送响应后仍然再一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文

HTTP/1.1协议的持续连接有两种方式以及特点,非流水线方式:客户在收到前一个响应后才能发出下一请求,因此,在TCP连接建立后,客户每访问一次对象都要用去一个往返RTT,因此服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源;流水线方式:客户在收到HTTP的响应报文之前就能接着发送新的请求报文,可以使TCP连接中空闲的时间减少,提高了下载文档效率

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值