HTTP协议的主要特点
1 简单快速(统一的URL)
2 灵活
3 无连接(重点)(我连接一次他就会断掉,不会保持连接)
4 无状态(重点)
HTTP报文的组成部分
1请求报文(请求行,请求头,空行,请求体)
2响应报文(状态行,响应头,空行,响应体)
HTTP方法
1 GET ---------获取资源
2 POST ------传输资源
3 PUT -------更新资源
4 Delete ------删除资源
5 HEAD ------获取报文首部
POST和GET的区别
1 GET请求只能进行URL编码,而POST支持多种编码格式
2 GET比POST更加不安全,因为参数直接暴露在URL上,所以不能传递敏感信息
3 GET产生的URL地址可以被收藏,而POST不可以
4 对参数的数据类型,GET只能接受ASCII字符,而POST没有限制
5 GET 参数通过URL传递,POST放在Request body中
HTTP状态码
1 1xx:指示信息-表示请求已接收,继续处理
2 2xx:成功-表示请求已被成功接受
3 3xx:重定向-要完成请求必须进行更进一步的操作
4 4xx:客户端错误-请求有语法错误或请求无法实现
5 5xx:服务器错误-服务器未能实现合法的请求
200:ok 客户端请求成功
301:永久性重定向
302:临时重定向
持久连接
HTTP协议采用“请求-应答”模式,当使用普通模式,既非keep-Alive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
当使用Keep-Alive 模式(又称持久连接,连接重用)时,Keep-Alive功能使客户端到服务端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接
管线化
在使用持久连接的情况下,某个连接上信息的传递类似于
请求1 --响应1--请求2 --响应2 --请求3 --响应3
某个连接上的消息变成了类似这样
请求1 --请求2 --请求3---响应1 ---响应2 -- 响应3
1 线管化机制通过持久连接完成,仅HTTP/1.1支持此技术
2 只有GET和HEAD请求可以进行管线化,而POST则有所限制
3 初次创建连接时不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议
4 管线化不会影响到来的顺序,如上面的例子所示,响应返回顺序并未改变