为什么要学习HTTP
- HTTPS为什么安全?
- 长链接和短链接分别是什么?
- 除了用json传数据还有别的什么数据格式?
....
网络请求并不是传参数然后获取返回值就完了!一花一世界,一叶一菩提。
HTTP到底是什么
- 两种最直观的印象
- 浏览器地址栏输入地址,打开网页
- Android中的发送网络请求,返回需要的数据
- 官方定义:HTTP,又被称为超文本传输协议(http,hypertext transfer protocol)是互联网上应用最为广泛的一种网络协议
HTTP的工作方式
浏览器向服务器发送请求报文;服务器返回响应报文给浏览器;
报文格式
请求报文
QQ20200819-111002@2x.png
- 请求行:请求方式、请求地址、协议版本
- headers: 服务器地址、数据类型、数据长度
-
body:需要传输的数据体
响应报文
QQ20200819-111412@2x.png - 状态行:协议版本、状态码、状态补充说明
- headers:数据类型、压缩格式。。
- 返回的数据体
请求方法
- GET 获取资源;没有Body
- POST 增加或修改资源;有Body
- PUT 修改资源;有Body
- DELETE 删除资源;没有Body
- HEAD (下载时获取信息,响应里没有Body)
响应的状态码
- 1xx:临时性消息;101协议切换;100继续
- 2xx: 成功
- 3xx:重定向;301资源永久迁移;302资源临时迁移;
- 4xx:400客户端错误; 404找不到资源;401未授权;
- 5xx:500服务器错误;
内容类型
- text/html:html文本,用于浏览器页面的响应
- application/x-www-form-urlencoded:普通表单,encoded URL格式
- multipart/form-data:多部分形式,一般用于传输包含二进制内容的多项内容
- application/json:json形式,用于Web Api的响应或POST/PUT请求
- image/jpeg /application/zip...:单文件,用于Web Api响应或POST/PUT请求
Header
作用:HTTP消息的原数据(metadata)
- Host:服务器主机地址(在一个主机上有多个服务器时,用于区分是哪个服务器)
- Content-Length:数据的长度(在二进制数据中无法设置结束符)
- Content-Type:内容类型
- Location:重定向目标的URL
- User-Agent:用户代理
- Range/Accept-Range:指定Body的内容范围(用于分段加载)
- Cookie/Set-Cookie:发送Cookie/设置Cookie
- Authorization:授权信息
- Accept:客户端能接收的数据类型。如text/html
- Accept-Charset:客户端接受的字符集。如utf-8
- Accept-Encoding:客户端接受的压缩编码类型。如gzip
- Content-Encoding:压缩类型。如gzip
网友评论