HTTP协议是什么?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)的规范。
HTTP的注意事项
- 首先,HTTP是无连接的,这意味着我们在向服务器请求数据的时候,使用的连接通路是临时的,也就是我们在连接前是不存在一条通路的,只有在我们请求时才会形成,然后在我们请求结束后服务器端就会立马断开,这样可以节省传输时间。
- HTTP是媒体独立的,也就是协议和我们使用的媒体互不联系,在传输中,只要服务器和客户端知道这个数据怎么处理,那么他就可以使用HTTP协议进行传输。
- HTTP是无状态协议,也就是说HTTP是没有记忆的,如果在后续处理中需要前边的信息,那么必须进行重传,在服务器不需要先前的信息时应答就比较快。
HTTP是一个基于c/s(客户端/服务器)的架构模式,通过可靠链接来传递信息。
消息传递
客户端发送一个HTTP请求到服务器的请求消息格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
服务器发送一个HTTP响应到客户端的响应消息格式:状态行、消息报头、空行、响应数据四部分组成。
HTTP的请求方法
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
POST方法与GET方法的区别
- get使用URL或Cookie传参,而post是将数据放在body中进行传递
- get的URL会有长度的限制,最大为2kb,而post的数据可以非常大(get的这个限制并不是自己本身的限制,而是由于浏览器限制,)传输文件时采用post传输
- post比get安全,因为数据不再地址栏中(这个只是相对安全,而且这个安全都是相对外部的,并不是数据加密之类的)。
- get方法只支持ASCII字符,因此向服务器传输中文字符可能出现乱码,
- post支持标准字符集,可以正确传递中文字符。
常见HTTP状态码
- 200——请求成功,返回成功页面
- 301——请求的资源(页面)永久转移到其他URL
- 404——请求的页面不存在
- 500——内部服务器出错