java http

超文本传输协议

超文本/html

工作方式

get / url 请求获取相应报文

http://xxxxxxxxxxxx.com/user?xxx = xxx

协议类型 - 服务器地址 -路径 path

请求格式:

head / body

path路径进行处理资源

等同于报文请求:

GET: /users HTTP/1.1

Host:api.github.com

响应报文

请求方式:

GET (获取,一般没有body) 幂等

body体 GET,Retrofit则会报错

POST(增加/修改/删除数据)

有body体    幂等

name =xxx& xxx= xxx

DELETE(删除数据)  幂等

没有body

PUT(修改数据)

有body体 同POST  都是幂等

HEAD(获取信息):

没有Body

状态码:

1xx : 100 临时消息 ,101协议可切换 ,102 通过Upgrade : h2c 判断返回码 

2XX: 200请求成功 status = 200 OK,   201创建成功

3XX: 301 重定向 资源迁移 会跳转到headrs的 Location的地址,

4XX: 服务端错误,404资源未找到, 401未授权

5XX: 500 服务器错误

Http状态码

Http Status Code

Http状态码含义中文说明

100

100 Continue100

请继续请求

101

101 Switching Protocols101

请切换协议

102

102 Processing102

将继续执行请求

200

200 OK200

请求成功

201

201 Created201

请求已被接受,等待资源响应

202

202 Accepted202

请求已被接受,但尚未处理

203

203 Non-Authoritative Information203

请求已成功处理,结果来自第三方拷贝

204

204 No Content204

请求已成功处理,但无返回内容

205

205 Reset Content205

请求已成功处理,但需重置内容

206

206 Partial Content206

请求已成功处理,但仅返回了部分内容

207

207 Multi-Status207

请求已成功处理,返回了多个状态的XML消息

208

208 Already Reported208

响应已发送

226

226 IM Used226

已完成响应

300

300 Multiple Choices300

返回多条重定向供选择

301

301 Moved Permanently301

永久重定向

302

302 Found302

临时重定向

303

303 See Other303

当前请求的资源在其它地址

304

304 Not Modified304

请求资源与本地缓存相同,未修改

305

305 Use Proxy305

必须通过代理访问

306

306 (已废弃Switch Proxy306

(已废弃请切换代理)

307

307 Temporary Redirect307

临时重定向,同302

308

308 Permanent Redirect308

永久重定向,且禁止改变http方法

400

400 Bad Request400

请求错误,通常是访问的域名未绑定引起

401

401 Unauthorized401

需要身份认证验证

402

402 Payment Required

-

403

403 Forbidden403

禁止访问

404

404 Not Found404

请求的内容未找到或已删除

405

405 Method Not Allowed405

不允许的请求方法

406

406 Not Acceptable406

无法响应,因资源无法满足客户端条件

407

407 Proxy Authentication Required407

要求通过代理的身份认证

408

408 Request Timeout408

请求超时

409

409 Conflict409

存在冲突

410

410 Gone410

资源已经不存在(过去存在)

411

411 Length Required411

无法处理该请求

412

412 Precondition Failed412

请求条件错误

413

413 Payload Too Large413

请求的实体过大

414

414 Request-URI Too Long414

请求的URI过长

415

415 Unsupported Media Type415

无法处理的媒体格式

416

416 Range Not Satisfiable416

请求的范围无效

417

417 Expectation Failed417

无法满足的Expect

418

418 I’m a teapot418

愚人节笑话

421

421 There are too many connections from your internet address421

连接数超限

422

422 Unprocessable Entity422

请求的语义错误

423

423 Locked423

当前资源被锁定

424

424 Failed Dependency424

当前请求失败

425

425 Unordered Collection425

未知

426

426 Upgrade Required426

请切换到TLS/1.0

428

428 Precondition Required428

请求未带条件

429

429 Too Many Requests429

并发请求过多

431

431 Request Header Fields Too Large431

请求头过大

449

449 Retry With449

请重试

451

451 Unavailable For Legal Reasons451

访问被拒绝(法律的要求)

499

499 Client Closed Request499

客户端主动关闭了连接

500

500 Internal Server Error500

服务器端程序错误

501

501 Not Implemented501

服务器不支持的请求方法

502

502 Bad Gateway502

网关无响应

503

503 Service Unavailable503

服务器端临时错误

504

504 Gateway Timeout504

网关超时

505

505 HTTP Version Not Supported505

服务器不支持的HTTP版本

506

506 Variant Also Negotiates506

服务器内部配置错误

507

507 Insufficient Storage507

服务器无法存储请求

508

508 Loop Detected508

服务器因死循环而终止操作

509

509 Bandwidth Limit Exceeded509

服务器带宽限制

510

510 Not Extended510

获取资源策略未被满足

511

511 Network Authentication Required511

需验证以许可连接

599

599 Network Connect Timeout Error599

网络连接超时

Header:

元数据

通过请求的url 解析dns地址

Host:给主机判断,请求哪个子服务器等

域名可以通过DNS解析,然后放到Host请求

Content-Length = number  数据长度,如果是二进制则不会准确,\n则会切断后面的数据,需要指定content-Length

Content-Type / text/html

ContentType-JSON ..

请求和相应JSON报文:

Retrofit:

FormBody  表单,对应Retrofit FormUrlEncoded,通过Field

类似于url拼接格式

FormBoundary 分割线,将多个数据进行切分,上传文件,或者二进制文件,可以通过这种方式

Retrofit 实例

不可以同FormEncoded同时使用,都是Form表单提交

image-jpeg

上传,下载文件, 上传/ 相应报文:

Chunked Transfer Encoding分快传输编码:

Location:

OkHttp自动进行重定向到返回的location的重定向

User-Agent 用户代理

Range / Accept-Range分段加载,通过Content-Length判断总大小,Content_Range bytes xx-xx /xx加载的当前进度 / 总进度

可以进行断点续传,多线程加载

其他HEADED  值

Cache 缓存:

 缓存和缓冲

no-cache 不缓存

no-store

max-age

Last-Modufied  最后请求的一次标签,用于判断鉴定是否最新数据

Etag 指纹

REST:

架构风格

server 服务器架构 cs / bs

statelessness 无状态

cachebulity:可缓存

Layered :可选项

Code On:

Uninform interface:统一接口:

描述资源

资源修改

自描述信息 Content-Type

超媒体 以连接方法查看资源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值