HTTP协议
一、HTTP简介
-
HTTP协议,即==超文本传输协议==(Hypertext Transfer Protocol)。是一种规定了浏览器和万维网之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
-
HTTP是一个==应用层协议==,由请求和响应构成,是一个标准的客户端服务器模型
-
HTTP是一个 ==**无状态 **==的协议。
-
HTTP默认的端口号为:80,HTTPS的端口号为:443。
-
浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。
二、HTTP特点
-
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
-
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
-
HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。也就是所谓的短连接和长链接
-
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
-
支持多种服务架构:Browser/Service和Client/Service
理解无状态的栗子
有状态:
张三:你今天晚上吃的啥?
李四:吃的花菜炒肉。
张三:味道怎么样呀?
李四:还不错,挺好吃的。
无状态:
张三:你今天晚上吃的啥?
李四:吃的花菜炒肉。
张三:味道怎么样呀?
李四:???啊?啥?啥味道怎么样?
当有了cookie、session这种东西时:
张三:你今天晚上吃的啥?
李四:吃的花菜炒肉。
张三:你今天晚上吃的红烧甲鱼味道怎么样呀?
李四:还不错,挺好吃的。
三、HTTP之请求消息Request
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows;