为Android开发者普及HTTP基本知识

2019-06-11  本文已影响0人  月枫cc

前言

作为一个Android开发,平时学习的侧重点一直在Android这边,久而久之会发现有些其它方面的基础知识欠缺,导致工作中不可避免的尴尬。

经常遇到的这些问题,开始意识到其它相关领域的基础知识要补一补了。

适合谁看

我希望你经历过实际开发,有一些使用过Http的经验,但是只停留在最基本的使用,对很多问题一知半解,这篇文章会给你一些帮助,让你明白一些网络编程的原理。

定义

HTTP:HyperText Transfer Protocol 超文本传输协议
所谓超文本,就是对文本的扩展,包括二进制文件等

基本工作方式

请求报文

GET /img/bd_logo1.png HTTP/1.1
Host: www.baidu.com
Content-Type: text/plain
Content-Length: 243
......

bodybodybody
名称 含义
GET 请求方式(method)
/img/bd_logo1.png 请求路径(path)
HTTP/1.1 Http版本

响应报文

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 984
Content-Type: image/x-icon
......

bodybodybody

名称 含义
HTTP/1.1 HTTP版本
200 状态码(status code)
OK 状态信息(status message)

Request Method 请求方式

目前HTTP1.1版本一共4种请求方式,常用的有2种GET和POST

GET

为了获取服务器资源,不需要发送body

GET /img/bd_logo1.png HTTP/1.1
Host: www.baidu.com

目的是 获取www.baidu.com/img/bd_logo1.png这个图片

POST

用于增加或修改服务器资源,携带body

POST /user HTTP/1.1
Host: www.baidu.com
Content-Type: application/x-www-form-urlencoded

name=yuefeng&gender=male

目的是向www.baidu.com/user发送了一串表单数据name=yuefeng&gender=male

PUT

用于修改资源,携带body
目前一般做法都是通过POST完成,知道即可

DELETE

用于删除资源,不发送body
目前一般做法都是通过POST完成,知道即可

Status Code 状态码(重要)

这块内容一定要记下,属于网络编程的常识问题

Status Code 含义
100 继续发送,一般用于服务器发送大文件
101 正在切换协议
200 成功
301 永久重定向,目标地址在Header中,key是Location
302 暂时重定向,目标地址在Header中,key是Location
304 内容无变化
4xx 4开头表示客户端错误
400 客户端请求错误
401 客户端认证失败
403 客户端被禁止
404 内容找不到
5xx 5开头表示服务器内部错误

Header

元数据,就是数据的数据;数据的属性;用来描述数据的

说一下Cache和Buffer在代码中的区别
cache:这次用过了,一会可能还会再用,降低访问服务器频率
buffer:提前存下来,一会可能用到(例如视频缓冲)

上一篇 下一篇

猜你喜欢

热点阅读