java http

超文本传输协议

超文本/html

java http_第1张图片

工作方式

get / url 请求获取相应报文

java http_第2张图片

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

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

java http_第3张图片

请求格式:

java http_第4张图片

head / body

java http_第5张图片

path路径进行处理资源

java http_第6张图片

等同于报文请求:

GET: /users HTTP/1.1

Host:api.github.com

响应报文

java http_第7张图片

请求方式:

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

java http_第8张图片

body体 GET,Retrofit则会报错

java http_第9张图片

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

有body体    幂等java http_第10张图片

name =xxx& xxx= xxx

DELETE(删除数据)  幂等

没有body

java http_第11张图片

PUT(修改数据)

java http_第12张图片

有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:

元数据

java http_第13张图片

通过请求的url 解析dns地址

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

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

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

Content-Type / text/html

java http_第14张图片

ContentType-JSON ..

请求和相应JSON报文:

Retrofit:

java http_第15张图片

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

java http_第16张图片

类似于url拼接格式

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

java http_第17张图片

Retrofit 实例

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

image-jpeg

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

java http_第18张图片

java http_第19张图片

Chunked Transfer Encoding分快传输编码:

java http_第20张图片

java http_第21张图片

Location:

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

java http_第22张图片

User-Agent 用户代理

java http_第23张图片

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

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

其他HEADED  值

java http_第24张图片

Cache 缓存:

 缓存和缓冲

java http_第25张图片

no-cache 不缓存

no-store

max-age

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

Etag 指纹

REST:

架构风格

java http_第26张图片

server 服务器架构 cs / bs

statelessness 无状态

cachebulity:可缓存

Layered :可选项

Code On:

Uninform interface:统一接口:

描述资源

资源修改

自描述信息 Content-Type

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

你可能感兴趣的:(http,网络协议,网络)