因为我们开发的系统都是基于 B/S
架构的,因此我们在开发系统的时候就一定会经常使用到浏览器,而为什么浏览器可以和服务器之间进行很好的沟通呢?肯定是因为事先指定了沟通的规则,就是我们经常说的协议,那这里就是 HTTP
协议了。
1.HTTP协议概述
HTTP(HyperText Transfer Protocol)
协议就是超文本传输协议,主要就是规定了浏览器和服务器之间数据进行交换的格式。
HTTP特性:
1.是基于请求与应答模型。首先必须要先有请求,后有响应;而且请求和响应必须成对出现。
2.简单快捷。发送请求时只需要确定发送请求方式和请求路径就可以了。
HTTP版本:
HTTP
协议到目前为止只有两个版本,分别是 1.0
和 1.1
版本,1.0
版本是一次请求和一次应答完成之后则马上断开连接,如果还需要连接的话则需要重新建立连接,所以 1.0
版本的特点则是每次发送请求都需要重新建立连接;到了 1.1
版本之后,则是在一次请求与应答完成之后,浏览器和服务器之间的连接仍然会保持一段时间,如果这段时间内浏览器没有再发出请求的话,那么连接将会断开,如果这段时间内有请求再次发送的话,则不会重新建立连接,而是直接使用上次建立的连接。
2.HTTP请求部分
HTTP
请求可以分为三个部分:请求行、请求头、请求体。
请求行中主要包括请求方式、请求路径和协议版本。
请求方式有很多种,使用最多的就是 POST
和 GET
这两种,那 GET
方式和 POST
方式有什么区别呢?GET
请求方式请求的参数会写到地址栏中,而且会有大小的限制,没有请求体。而 POST
方式请求的参数不会写到地址栏中,而是会放到请求体中,请求参数也没有大小的限制,不过在提交表单时,只有在表单标签 <form>
中加入 method="post"
才是 POST
的请求方式,不然默认就是 GET
的请求方式了。
请求头一般都是以键值对的形式展现,有的一个 key
对应一个值,有的则是一个 key
对应多个值,下面两个请求头是需要记住的:
Referer: 代表的是当前网页来源,可以防止盗链
User-Agent: 代表的是客户端浏览器的信息
请求体是只有是 POST
请求方式时才会有。
3.HTTP响应部分
HTTP
响应同样也可以分为三个部分:响应行、响应头和响应体。
响应行一般包括协议版本、响应状态码和状态码描述。记住一些常用的响应状态码对我们平时调试程序会有很大帮助,比如说 404
,每次一看到这个数字,就知道是路径错误。常见的状态码:
200:代表响应成功
302:需要进行重定向操作
304:需要查找本地缓存
404:请求资源不存在
500:服务器内部错误
响应头则和请求头类似,都是以键值对的形式出现,有的是一个 key
对应一个值,有的则是一个 key
对应多个值。需要记住的一些响应头:
Location: 重定向的路径
Refresh: 定时刷新
Content-Disposition:文件下载时使用
响应体则是展示到浏览器页面上的代码
4.总结
掌握 HTTP
协议的基础对我们平时开发还是很有帮助的,因为本身浏览器和服务器之间进行通信就是基于该协议的,而且我们在调试程序的过程中可以根据响应状态码来判断是哪类错误,可以说记住一些常识还是很有用的。