HTTP协议浅析
一、HTTP协议简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于将服务器中的超文本通过万维网传输到本地浏览器的协议。
HTTP协议是属于应用层的一个协议,它基于传输层的TCP/IP协议传输数据,一般工作在服务器到浏览器的B-S架构之上。
HTTP协议有如下特点:
1、简单快速:只需传输请求方法和路径,因此服务器程序规模小,通信速度快
2、灵活:HTTP允许传输任何数据类型
3、无连接:这是HTTP/1.1版本之前的情况,即服务器处理完一个请求之后就断开本次连接,1.1版本之后会设置一个超时时间,超过这个时间没有新的请求才断开连接,一般等待时间不会太长
4、无状态:HTTP协议在处理一个请求的过程中不会保留本次连接的任何信息
二、HTTP请求协议
HTTP的一次请求传输的数据遵循如下格式:
请求首行:请求方法 请求路径 协议版本 如 GET https://www.baidu.com/ HTTP/1.1
请求头:本次请求的描述信息,如请求的路径,用户操作系统和客户端类型,浏览器可以接收的文件类型,浏览器可以解压的压缩格式等
空行:用于分隔请求体和请求的具体数据
请求体:本次请求要发送给服务器的数据或需要从服务器获取的数据
HTTP常用请求方式GET和POST的区别
GET特点:请求数据暴露在URL中、请求体为空、发送的数据有长度限制
GET方式:地址栏输入URL访问、超链接访问、form表单method属性设置为GET
POST:请求数据放在请求体中、数据长度无限制、安全性相对更高
POST方式:form表单method属性设置为POST
请求头部分信息含义:
Host:服务器域名
User-Agent:本次请求的客户端运行在什么操作系统,客户端是什么类型
Accept:表示客户端可以接收的文件类型,先后次序表示接收的次序
Accept-Lanuage:客户端显示信息的语言类型
Accept-Encoding:客户端支持的压缩格式
Accept-Charset:客户端支持的字符集
Content-Type:请求数据类型,application/x-www-form-urlencoded除文件和二进制数据外的数据编码格式,multipart/form-data上传文件和二进制数据如图片、视频等数据时采用的编码格式
Keep-Alive:表示是否需要持久连接
三、HTTP响应协议
服务器的一次响应传输的数据遵循如下格式
响应首行:HTTP版本 状态码 状态消息 如 HTTP/1.1 200 OK
消息报头:响应的时间,响应的文件类型,内容的字符集
空行:分隔消息报头和响应正文
响应正文:一个字符串形式的HTML文档
部分响应码的含义:
1XX:指示信息,请求已接收获继续处理等
2XX:成功,本次请求正常接收
3XX:重定向,要完成请求需要进一步处理
4XX:客户端错误,请求有语法错误或无法实现
5XX:服务端错误,服务端未能实现合法请求
200 OK 请求成功
400 Bad Request 客户端请求有语法错误,无法被服务端理解
401 Unauthorized 请求未经授权
403 Forbidden 服务端收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在
500 Internal Server Error 服务端发生不可预期错误
503 Server Unavailable 服务端当前无法提供服务

浙公网安备 33010602011771号