HTTP详解

**

HTTP是一个属于应用层的面向对象的协议。

**

HTTP版本历史

0.9 已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。

HTTP/1.0 这是第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中

HTTP/1.1 当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度

HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在:
1 缓存处理
2 带宽优化及网络连接的使用
3 错误通知的管理
4 消息在网络中的发送
5 互联网地址的维护
6 安全性及完整性

HTTP协议特点:
1:支持客户/服务器模式
2:简单快速:只需传送请求方法和路径,请求常用方法GET,POST,HEAD,由于HTTP协议简单,
使得HTTP服务器的程序规模小,因而通信速度很快。
3:灵活:HTTP允许传输任意类型的数据对象
4:无连接:限制每次连接只处理一个请求,采用这种方式可以节省传输时间
5:无状态:对于事务处理没有记忆能力

HTTP协议之URL

http(超文本传输协议)是一个基于请求与相应模式的、无状态的、应用层协议,常基于TCP的连接方式

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够信息)
URL:统一资源定位符
URI:统一资源标识符
URN:统一资源名称

URL格式分三部分:第一部分是协议,第二部分是存有该资源的主机IP地址(有时也表示端口号),第三部分是主机资源的具体地址,如目录和文件名

HTTP协议之请求

http请求由三部分组成,分别是:请求头、消息报头、请求正文

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本
请求方法有多种,常用的有GET、POST
GET - 从指定的资源请求数据。查询字符串(名称/值对)是在 GET 请求的 URL 中发送的
POST - 向指定的资源提交要被处理的数据。查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的

GET与POST区别:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据

POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求

HTTP协议之响应

在接受和解释请求消息后,服务器返回一个HTTP响应消息。三部分组成:状态行,消息报头,响应正文。

1XX:指示信息–表示请求已接受,继续处理
2XX:成功–表示请求已被成功接受、理解、接受
3XX:重定向–要完成请求必须进行更进一步的操作
4XX:客户端错误–请求有语法错误或请求无法实现
5XX:服务器端错误–服务器未能实现合法的请求

常见状态吗
200 OK // 客户端请求成功
400 Bad Request // 客户端请求有无法错误,不能被服务器所理解
404 Not Found // 请求资源不存在,输入了错误的URL
500 Internal Server Error // 服务器发生不可预期的错误
503 Server Unavailable // 服务端当前不能处理客户端的请求,一段时间后可能恢复正常

响应正文就是服务器返回的资源的内容

HTTP协议之消息报头

1.普通报头:有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息

2.请求报头:允许客户端想服务端传递请求的附加信息以及客户端自身的消息

3.响应报头:允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的消息和对Request-URI所标识的资源进行下一步访问的信息

4.实体报头:请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文和请求所标识的资源的元信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值