Http协议简介
HTTP协议
1 什么是HTTP协议
HTTP,即超文本传输协议。这个协议,专门就是用来传输html!所有浏览器都可以发出http协议。
协议:就是规定的文本格式!例如写本书也要有格式,写总结也有格式。当然客户端发送请求也要有格式,这个格式是已经约定的格式,所以服务器端按请求格式来获取请求信息,然后服务器端再按照响应格式来响应,当然客户端还要按响应的格式来解析。
其实HTTP就是两个小协议构成:一个是HTTP请求协议,另一个是HTTP响应协议。如果你还是对协议理解不了,那就把协议读做“格式”吧。
2 无状态协议
HTTP是无状态协议,必须必须理解这一点!!!
所谓无状态,就是客户端发送一个请求,服务器返回一个响应,然后就断开连接了。比喻一下,去看电影时,验票人员与看电影的观众就是无状态连接。当验票人员验过你的票之后,你进入了观影厅,然后从后头出来了,再从正门进入时,验票人员已经不在记得你,他会要求你出示电影票。
无状态协议的好处,当然是效率高了,用户连接一下就断开,当用户再次发送请求时,再连接,然后在响应之后再次断开。如果用户在服务器上找到了自己想看的小说,那么服务器只是把小说的内容(html)发送给用户的浏览器,然后用户的浏览器显示已经发送到本地的html,其实这时已经与服务器断开连接了。用户可能会看很久,但这不会占用服务器的任何资源!
但无状态也有坏处,那就是用户没状态呗!!!例如你刚刚登录了系统,然后到下一个页面时,服务器已经和你断开了,当你再次发送请求时,可能服务器需要你再次登录!这就是无状态的最大缺点了。但是你可能会说,我登录之后,服务器已经认识我了,没有要求我再次登录啊,我怎么感觉服务器是有状态的呢?其实这不是HTTP有状态,而是服务器端的代码要处理“会话跟踪”的问题,这也是我们后面的一个大课题!但你一定要相信,HTTP是无状态的!如果没有会话跟踪的话,那么服务器一定不会认识你,一定会要求你再次登录的!
3 请求协议和响应协议
无论是请求协议还是响应协议,都是由如下部分构成的:
l 请求(或响应)首行;
l 请求(或响应)头信息;
l 空行;
l 请求(或响应)正文。
4 HTTP1.0和HTTP1.1
HTTP现在有两个版本,HTTP1.0和HTTP1.1。
HTTP1.0:响应结束后会马上断开;
HTTP1.1:必须在请求中包含Host(主机)头信息,响应结束后不会马上断开,会有一个超时时间,可能会在超时之前完成多个请求/响应,当超时的时候就断开。
<!--EndFragment-->