HTTP协议主要特点:
1.支持客户/服务器(c/s)模式;
2.简单且快速;(当客户向服务器请求服务时,只需传送请求方法(GET、POST) 和 路径);
3.灵活;(HTTP允许传输任意类型的对象。正在传输的类型由Content-Type加以标记);
4.无连接;(其限制每次连接只处理一个请求。当服务器处理完客户的请求,并收到客户应答之后就断开连接。这种方式可以节省传输时间。);
5.无状态;(HTTP协议是无状态的协议。对于事务处理没有记忆能力。缺少状态表示如果后续处理前面的信息,则它必须重传,这也会导致每次连接传送的数量增大;不过,大概服务器不需要前面的信息时它应答就比较快。)
HTTP请求和响应
请求部分:
- 请求行:包含请求方式、请求url、HTTP协议版本
- 请求头:包含了对客户端的环境描述、客户端请求的主机地址等消息
- 请求体:客户端发给服务器的具体数据,比如文件数据
响应部分:
- 状态行:包含了HTTP协议版本、响应状态码、状态英文名称
- 响应头:包含了对服务器的描述、对返回数据的描述
- 响应内容:服务器返回给客户端的具体数据,比如文件数据。
HTTP请求方式
其请求方式有很多种,不过HTTP常用的请求方式有两种:get、post。
GET:超链接请求、浏览器地址栏上书写url请求,都属于get方式;
POST: form表单的method属性值为post时,属于post方式;
get和post方式的区别:
get把参数包含在url之中的(数据保密较差),而post通过请求体传递参数(数据保密安全)。
get传输的数据量较小(不大于2KB)。post传送的数据量较大,一般默认不受限制。
get安全性较低,post安全性较高。
HTTP响应状态码
- 1xx 表示通知信息的,如请求收到了或正在进行处理
- 2xx 表示成功,成功处理了请求的状态代码。
- 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
- 4xx 表示客户端的错误,如请求中有错误的语法或不能完成。
- 5xx 表示服务器端的错误,如服务器失效无法完成请求。