一. HTTP
1. HTTP(超文本传输协议)是一个基于请求与响应模式的, 无状态的, 应用层的协议
2. URL详解:
名称 | 解释 | 举例 |
http/https | 协议类型 | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
host | 主机地址或域名 192.168.xx.xx:8080 地址+端口号 www.baidu.con 域名 localhost:8080 本机地址 | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
port | 端口号(默认端口号是80,可省略) | http://192.168.xx.xx:8080/ (其中192.168.xx.xx是主机地址) |
path | 请求的路径 | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
? | 分割符号 | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
参数 | name=value | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
& | 多个参数用&隔开 | https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D |
二. Request
1. 请求方法:
GET, POST, HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE
GET请求指定的页面信息, 并返回实体主体
POST向指定的资源提交数据进行处理请求(例如提交表单或者上传文件). 数据被包含在请求体中, POST请求可能会导致新的资源的建议和/或已有资源的修改
HEAD 类似于GET请求, 只不过返回的响应中没有具体的内容, 用于获取报头
PUT 从客户端向服务器传送的数据取代指定的文档内容
DELETE 请求服务器删除指定的页面
CONNET HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能( & 获取服务器支持的HTTP请求方法)
TRACE 回显服务器收到的请求, 主要用于测试或诊断
2. Request组成:
请求行, 请求头部, 空一行, 请求体(body)
3. 请求头Headers:
Client:
Accept:浏览器可接受的媒体类型
Accept-Encoding: 编码类型, 声明可以接受的媒体格式
Accept-Language: 语言, 声明可解析的语言
User-Agent: 客户端类型
Cookie:
Cookie:一个HTTP cookie 是服务端传给客户端浏览器的一小部分数据,可为无状态的HTTP协议提供前后请求间的上下文会话.(引用)
Entity:
Content-Type:发生post时, body的数据类型声明
4. GET/POST请求参数
GET的请求参数都在请求行里, 即URL里的name=value那段.(可通过Fiddler的WebForm查看)
POST请求参数同GET, 请求体分如下几种(通过Content-Type声明):
application/json: json格式
text/xml: xml 格式
application/x-www-form-urlencoded: name=value 形式(可通过Fiddler的WebForm查看, 请求参数为上方的QueryString, body为下方Body)
multipart/form-data: 表单格式, 一般用来传输多媒体格式, 如上传文件
三. Response
HTTP响应也由四个部分组成: 状态行, 消息报头, 空行, 响应正文
Response返回类型也有Content-Type: text/html格式, 可通过WebView查看
状态码
状态码由三位数字组成, 第一个数字定义了响应的类别, 共分五种类别:
1xx: 消息 - 请求已被接受,需要继续处理
2xx: 成功 - 请求已成功被服务器接收、理解、并接受
3xx: 重定向 - 需要客户端采取进一步的操作才能完成请求
4xx: 客户端错误 - 客户端看起来可能发生了错误,妨碍了服务器的处理
5xx: 服务的错误 - 服务器无法完成合法有效的请求
常见状态码:
200: OK - 客户端请求成功
400: Bad Request - 客户端请求有语法错误, 不能被服务器所理解
401: Unauthorized - 请求未经授权, 这个状态码必须和www-authenticate报头域一起使用
403: Forbidden - 服务器收到请求, 但是拒绝提供服务
404: Not Found - 请求资源不存在
500: Internal Server Error - 服务器发送不可预期的错误
503: Server Unavailable - 服务器当前不能处理客户端的请求, 一段时间后可能恢复正常