第二章 -- 简单的HTTP协议

HTTP

作用:用于客户端和服务器端进行通讯。

实现:通过请求和响应的交换达成通信,请求有客户端发出,响应有服务端完成。


请求:

上面整段叫做请求报文(由下面的组成):

GET:请求方法,表示访问服务器的类型,或者方法。

/index.htm:指明请求访问的资源对象,也叫请求URI

HTTP/1.1:表HTTP的版本,协议版本。

可选的请求首部字段和实体构成。

所以,此段表达的意思为:请求访问HTTP服务器上 /index.htm 页面资源


响应:

接收到请求的服务器会将请求内容的处理结果以响应的方式返回。

上面整段叫做响应报文(由下面的组成):

HTTP/1.1:对应的HTTP版本,协议版本。

200 OK :表示请求的处理结果的状态码(200)和原因短语(OK)。

首部字段: 

        Data:显示创建响应的时间。

        Content-Length:响应体长度

        Content-Type:响应字符集,告诉浏览器以什么样的字符集解码;

空行后的内容为资源实体的主体(entity body)


访问HTTP的方法

GET:获取资源(仅获取)

          用来请求访问被URI识别的资源,指定的资源被服务端解析后返回响应内容。如果返回文本,则原样返回;如果像CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回执行后的结果。

GET请求会显示请求指定的资源。一般来说GET方法应该只用于数据的读取。
GET会方法请求指定的页面信息,并返回响应主体,GET被认为是不安全的方法,因为GET方法会被网络蜘蛛等任意的访问。
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
/test/demoform.html?name1=value1&name2=value2
特点:
GET请求能够被缓存
GET请求会保存在浏览器的浏览记录中
以GET请求的URL能够保存为浏览器书签
GET请求有长度限制
GET请求主要用以获取数据

POST:传输实体主体(有更新)

POST 发送数据给服务器处理

POST 发送数据给服务器处理,数据包含在HTTP信息正文中
POST请求会向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。
POST方法可能会创建新的资源或/和修改现有资源。
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:
POST /test/demoform.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特点:
POST请求不能被缓存下来
POST请求不会保存在浏览器浏览记录中
以POST请求的URL无法保存为浏览器书签
POST请求没有长度限制

PUT:传输文件

     像FTP协议的文件上传一样,要求在报文的主体中包含文件的内容,然后保存到请求URI指定的位置。(本身不带验证机制,任何人都可以传,所以可能不安全,大多不使用)。

HEAD:获取报文首部

     和GET方法一样,但是不返回报文主体部分,用于确认URI的有效性和资源更新的时间日期等。

DELETE:用来删除文件 

    和PUT方法对立,也不带验证机制,所以一般不使用。

OPTIONS:询问支持的方法

    查询针对请求URI指定的资源支持的方法。

         

CONNECT:要求用隧道协议连接代理

    要求在与服务器连接时建立隧道,实现用隧道协议进行TCP通讯,主要使用SSL(secure socker layer 安全套接层)和TLS(transport layer security 传输层安全)协议把通信内容加密后经过网络隧道传输。 


持久连接

       很久很久以前,每次TCP连接都要断开一次,以前通讯量小,无所谓,现在通讯量变大,就不行了,所以现在就是连接一次后,可进行多次请求,只要一方未要求断开。

管线化

      持久连接的出现使得多数请求以管线化(pipelining)方式发送称为可能,从前发送请求后需要等到接收到响应再进行下一次

请求,管线化使得不用等待就可以发送下一个请求。所以就可以同时并发多个请求,而非一个一个的等待响应。

 请求数越多,则时间差越明显。   

 效率比较:

      管线化-->持久连接-->单个请求


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值