HTTP:超文本传输协议
是一个基于请求与响应模式的、应用层的协议。
URL统一资源定位符
是互联网上标准资源的地址。
HTTP使用URL来建立连接和传输数据
URL格式
协议、域名、端口号、资源路径、参数
- 协议:HTTP、HTTPS、FTP、SMTP/POP3/IMAP等
- 域名:可以说域名或者ip地址
- 端口号:默认的端口号可以省略
http默认在80端口
https默认是在443端口 - 资源路径:图片、视频、音频、链接、接口等
- 参数部分:它的内容是不会被系统解析的
?:隔离url主体与参数部分内容
&:存在多个参数时,使用&进行拼接
HTTP请求
由三部分组成:请求行、请求头、请求体
-
请求行:第一行信息
内容:请求方式、资源路径、协议及版本 -
请求头:第一行之后,空行之前的内容
内容:主要是以键值对形式存在 -
请求体(get请求没有请求体,一般请求体在post和put请求方式中使用)
位置:空行之后的内容
内容形式:json、html、text等
请求行
常用的请求方法:
- GET:从服务器获取资源(一项or多项)
- POST:在服务器新建一个资源
- PUT:在服务器更新资源(主要用于修改)
- DELETE:从服务器删除资源
还有其他请求方法:HEAD、TRACE、CONNECT、OPTIONS等。
请求头
紧接着请求行。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
- User-Agent:产生请求的浏览器类型
- Accept:客户端可识别的内容类型列表
- Content-Type:请求体数据的类型,常见类型有:
-text/html:HTML格式
text/plain:纯文本模式
image/jpeg:jpg图片格式
application/json:JSON数据格式
application/x-www-form-urlencoded:form表单数据被编码为key/value格式发送到服务器
multipart/form-data:在表单中进行文件上传时使用
HTTP响应
三部分组成:状态行、响应头、响应体
状态行由协议版本号、状态码、状态消息组成
状态码有三位数字组成
-
1xx:指示信息–表示请求已接收,继续处理
-
2xx:成功–表示请求已被成功接收、理解
接受 -
3xx:重定向–要完成请求必须进行更进一步的操作
-
4xx:客户端错误–请求有语法错误或请求无法实现
-
5xx:服务器端错误–服务器未能实现合法的请求
响应头:第一行之后空行之前,用于描述服务器相关信息
响应体:空行之后内容,响应数据:xml、json、html等。
状态码
状态码 | 说明 |
---|---|
200 | 服务器成功返回用户请求的数据 |
201 | 用户新建或修改数据成功 |
202 | 一个请求已经进入后台排队(异步任务) |
200 | 用户删除数据成功 |
401 | 表示用户没有权限 |
403 | 表示用户得到授权(与401错误相对),但是访问是被禁止的 |
404 | 请求资源不存在 |
500 | 服务器发生错误 |
503 | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 |