个人HTTP学习之路 (二) 简单的讲述HTTP协议

简单的HTTP协议

1、HTTP的特征

一、用于客户端和服务端的通讯html

HTTP协议可以分清哪端是客户端,哪一个是服务端。安全

二、经过请求和响应类达成通讯服务器

确定是先从客户端发出请求,服务端接受到请求后,返回响应。cookie


请求报文
GET src/index.html HTTP/1.1
Host: hark.jp
Connection: keep-alive
Content-Type: application/x-wwww-form-urlencoded
Content-Length: 16

name=meils&id=123456

图片描述

请求由 请求方法、资源路径URI、HTTP版本、可选的请求首部、内容实体。网络

响应报文
HTTP/1.1 200 OK
Data: Tue 10 Jul 2012 
Content-Length: 162
Content-Type: text/html

<html>
...
</html>

图片描述


三、HTTP是不保存状态的协议app

图片描述

HTTP是不保存状态的,是无状态的协议,HTTP不会对请求和响应之间的通讯进行保存的。不作持久化处理。学习

这样设计是为了保证可以处理大量的事务,可是随着WEB不断的发展,许多的有状态的需求不断出现,所以最后引入了Cookie技术。url

四、经过URI定位资源spa

  1. URI为绝对URI
  2. URI 为相对的URI(须要Host指明网络的域名huoIP地址)

图片描述

  1. 若是不访问任何资源,只是请求服务器,使用*代替
GET * HTTP/1.1

2、HTTP的请求方法

GET 获取资源

图片描述

POST 传输实体主体

图片描述

PUT 传输文件

容许在请求报文的主体中添加文件内容,而后保存到URI指定的位置。
因为PUT不带有验证机制,存在安全性问题,因此通常不用。设计

HEAD 获取报文首部

HEAD与GET相似,只是不返回报文主体,用于确认URI的有效性及资源更新的日期等。
图片描述

DELETE 删除文件

与PUT相反,跟它存在由同样的问题,因此通常也不会用

OPTIONS 询问支持的方法

该方法用来查询针对的URI指定的资源的支持方法。
图片描述

3、HTPP通讯的持久连接

一、最初的版本每次通讯都会断开一次链接

每一次通讯只进行一次HTTP请求和响应。
图片描述

2. 随着WEB技术的发展,HTTP通讯实现了持久链接

图片描述

随着WEB技术的发展,一张页面中会包含许多的资源。若是仍是采用以前的那种方案,无疑会加剧服务器的负担,下降效率。
为了解决上述难题,HTTP/1.1提出了持久链接(HTTPkeep-alive)。

图片描述

持久链接的特色就是,只要任意一端没有提出断开链接,则一致保持链接状态。

可是持久链接仍然存在必定的问题,那就是每一个请求和响应都是单独的,且必须是一个请求收到响应后再发送另外一个请求。为了解决这个问题,就出现了 管线化

4、管线化

图片描述

4、使用Cookie实现状态保存

使用Cookie来进行状态保存。假设一个须要登录验证的页面,若是不对用户的登录状态进行保存,那么每个页面都须要进行一次登录,这将会是一件惹人讨厌的事情。

不能否认,HTTP正是由于这种无状态的特性,才使得它较为轻巧简介,天然也减小了服务器CPU及内存资源的消耗。因此才会再各类场景中被使用。

为了再不破坏HTTP这种不保存状态的特性下,还能使得它可以保持状态,就出现了伟大的Cookie

Cookie技术是经过再请求和响应中写入Cookie信息来控制客户端的状态的。

Cookie会根据服务端返回的响应报文中的一个 Set-Cookie的首部信息,来通知客户端进行保存Cookie。当下次请求的是时候就会将这个 Cookie带上。

服务端会检查客户端发来的Cookie,会检查到底是哪一个发来的,而后对比服务器上的记录,最后获得那个状态信息。

  • 第一次请求
GET /reader/ HTTP/1.1
Host: hack.jp
// 没有cookie信息哦
  • 响应
// 返回了Cookie值
HTTP/1.1 200 OK
Date: Tue, 12...
Server: Apache
<set-Cookie: sid=221312321321414; path=/; ...>
  • 第二次请求
GET /reader/ HTTP/1.1
Host: hack.jp
Cookie: sid=221312321321414
关于Cookie具体的首部信息,以后会详细学习一下啦。

未完待续!!加油~~~

相关文章
相关标签/搜索