Http通信必须存在客户端和服务端
请求从客户端发出,服务器端接收后响应请求。(所以不难理解:首先是从客户端开始建立通信的)
发送请求报文示例:
GET /index.htm HTTP/1.1
Host: hackr.jp
报文解释:
GET表示访问服务器的类型:扩展:::
访问服务器类型常见的有POST/GET/HEAD等等,后续具体详解。
/index.htm表示访问的对象,即URI.这个对象资源存在服务器当中,相信大家懂。
http/1.1表示协议类型
响应请求报文示例:
HTTP/1.1 200 OK
Date:Tue,10,Jul 2012 06:50:15 gmt
Content-Length:362
Content-Type:text/html
<html>
报文解释:
HTTP/1.1 表示协议类型,200 OK表示状态码,即响应状态,扩展::
状态码不同表示含义也不同,例如404大家最熟悉了,后续会详细介绍状态码
Date:表示创建响应的日期。
后面Content-Length,Content-type,表示响应信息的内容的长度和类型。
至此,最基本的发送响应的示例讲解完毕。
Http是不保存状态的协议,何为不保存状态,拿个例子举例,就是用户登录信息,因为不保存状态,就说明,他本身不保存在登录的信息,你下次点击,还有再登录一遍。正是因为这个,才出现了cookie,因为cookie可以保存记录的信息。(这个可以当面试考点了,理解了就很容易了)
http使用uri来定位资源,why?又是另一个考点,这个可以在我写的第一章里面找到答案
访问服务器方法类型:
1.GET:获取资源(垃圾的一点是在url中会出现获取信息,不安全,受到url长度限制)
2.POST: 传输实体主体(这个是例如在表单提交中,注册信息登录信息中比较常用,优点是安全,然后缺点是,post数据有大小限制)
3.PUT:传输文件。主体中包含文件内容。(缺点,安全问题,没有验证机制)
4.HEAD:获得文件头信息,包括更新日期等等。
5.DELETE:删除文件,缺点:不安全
6.OPTION/TRACE:比较少用,暂时不写。
总结如下:(来源自图解http书中)
持久连接节省通信量:
上面的知识点,让我们自然而然觉得,http由于是无状态的协议,所以每次请求,都是一个来回的事,这样就很容易引发一个问题:批量下载图片怎么实现呢? 总不会一次图片,一次通信来回,那样太慢了,于是就引出了这个的高端地方:
使用持久连接:即只要有一方不放手,就不会断,比较好理解吧。
管线化:这个实现原理不太懂,有时间再研究,作用是一次可以发多个请求,而不是一次请求,一次回来,这种,这样的原理的应用,就是Web上下载东西,桌面的同时下载是开多线程,有点扯远了。
Cookie:就是保留客户端或者服务器端的信息,规避了下次还得再重新写的问题。
服务器端响应后发送Set-Cookie信息,然后客户端收到后,即保存Cookie记录。等到下次客户端发送东西,就自动把cookie信息也发给服务器端,说着有点抽象,举个例子给大家看看就理解了。
ok 结束第二章的总结,希望有帮助,应该是比较通俗易懂的