• 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

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

  • 相关阅读:
    企业实现员工聊天和转账行为的实时监管
    ruoyi框架使用自定义用户表登录
    Mysql内置函数、复合查询和内外连笔记
    TiDB乐观事务、悲观事务模型验证
    如何实现项目管理自动化?为什么项目需要需要自动化?
    java计算机毕业设计咖啡屋订单系统源码+mysql数据库+系统+lw文档+部署
    Scala
    M语言-命令
    ASIC/SOC的可测试性
    基于SpringBoot的电影评论网站
  • 原文地址:https://blog.csdn.net/qq_29769851/article/details/134543351