概念
HTTP协议(HyperText Transfer Protocol, 超文本传输协议)是因特网上应用最为广泛的一种网络协议,所有的www文件都必须遵循这个标准。
HTTP基于TCP/IP通信协议来传递数据(包括:HTML,文件,图片,查询结果等)。
协议的主要特点
- 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输事件。
- 媒体独立:这意味着,只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端和服务器指定使用适合的MIME-Type内容类型。
- 无状态:无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,由此可能导致每次连接传输的数据量增大。另一方面,在服务器不需要先前的信息时,它的应答就比较快。
HTTP报文的组成部分
- 请求报文:请求行,请求头,空行,请求体
- 响应报文:响应行,响应头,空行,响应体
HTTP方法
- GET:获取资源
- POST:传输资源
- PUT:更新资源
- DELETE:删除资源
- HEAD:获取报文首部
POST方法与GET方法的区别
- GET在浏览器回退时是无害的,而POST会再次提交请求
- GET请求会被浏览器主动缓存,而POST不会,除非手动设置
- GET请求参数通过URL传递,POST的参数放在请求体中
- GET请求在URL中传送的参数是有长度限制的,而POST没有限制
- GET请求的参数会被完整的保留在浏览器的历史纪录中,而POST参数不会保留
HTTP状态码
- 1xx: 服务器收到请求
- 2xx:请求被成功接受并处理
- 3xx:资源重定向
- 4xx:客户端错误
- 5xx:服务端错误
- 200:请求成功
- 301:资源被永久地转移到其它URL
- 404:请求的资源不存在
- 500:服务器内部错误
持久化连接技术
- keep-alive(HTTP/1.1版本开始支持)
管线化技术
- 需要持久化连接的支持,本质是对请求进行打包发送,收到的响应顺序不受影响,由于减少了HTTP请求的次数,因而提高了页面性能。