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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/179098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

配电房智能综合监控系统

配电房智能综合监控系统是一种针对配电房环境和设备进行实时监控和管理的系统。依托电易云-智慧电力物联网,它集成了多种先进技术,如物联网、大数据、AI视频智能分析等,实现对配电房全方位、智能化的监控和管理。 这个系统的主要功能可能包括…

Hadoop -hdfs的读写请求

1、HDFS写数据(宏观): 1、首先,客户端发送一个写数据的请求,通过rpc与NN建立连接,NN会做一些简单的校验,文件是否存在,是否有空间存储数据等。 2、NN就会将校验的结果发送给客户端…

汇编-CALL和RET指令

CALL指令调用一个过程, 使处理器从新的内存位置开始执行。过程使用RET(从过程返回) 指令将处理器转回到该过程被调用的程序点上。 CALL指令的动作: 1.将CALL指令的下一条指令地址压栈(作为子过程返回的地址) 2.将被调过程的地址复制到指令指针寄存器E…

Python---global关键字---设置全局变量

global 英 /ˈɡləʊb(ə)l/ adj. 全球的,全世界的;全面的,整体的;(计算机)全局的;球形的 需求:如果有一个数据,在函数A和函数B中都要使用,该怎么办&…

如何使用 Navicat 连接 GaussDB 主备版

Navicat Premium(16.2.8 Windows版或以上) 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

④【Set】Redis常用数据类型: Set [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis Set ④Redis Set 操作命令汇总1. sadd …

千云物流 - 使用k8s负载均衡openelb

openelb的介绍 具体根据官方文档进行安装官方文档,这里作为测试环境的安装使用. OpenELB 是一个开源的云原生负载均衡器实现,可以在基于裸金属服务器、边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 Service 对外暴露服务。OpenELB 项目最初由 KubeSphere 社区…

web需求记录

需求1:根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option 是动态增加的(也就是那个选择框里面的东西是根据后端传过来的值动态增加的&#xf…

[VS]控制台程序运行后无法聚焦到命令行窗口

0 环境 Windows11 22H2VS 2022 CommunityWindows Terminal 1.18.2822.0 1 问题说明 当使用 VS 写控制台程序时,运行后会弹出 CMD 窗口,并聚焦到该窗口。除了当前程序运行外,最后应该是暂停,等待用户输入任意按键,然…

竞赛 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi,大家好,这里是丹成学长,今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/pos…

论文笔记:Localizing Cell Towers fromCrowdsourced Measurements

2015 1 Intro 1.1 motivation opensignal.com 、cellmapper.net 和 opencellid.org 都是提供天线(antenna)位置的网站 他们提供的天线位置相当准确,但至少在大多数情况下不完全正确这个目标难以实现的原因是蜂窝网络供应商没有义务提供有…

3-合并区间

1题目描述 2思路 在合并区间之前,需要对所有的区间按照区间第一个元素进行排序,这样可以保证已经合并的各个区间之后不会再包含其他区间,或者被其他区间包含; 首先自己进行一下排序练习,回顾冒泡排序和选择排序&#…

Leetcode——121 买卖股票的最佳时机

(超时。。。。。。&#xff09;除了暴力法我是真的。。。。。。 class Solution {public int maxProfit(int[] prices) {int len prices.length;int max0;for(int i0;i<len-1;i){for(int ji1;j<len;j){int income prices[j] - prices[i];if(income>max){maxincome;…

真实网络中的 bbr

本文包含中心极限定理&#xff0c;大数定律&#xff0c;经济规律等&#xff0c;bbr 倒没多少&#xff0c;不过已经习惯把 bbr 当靶子了。 上周写了 揭秘 bbr 以及 抢带宽的原理&#xff0c;我对自己说&#xff0c;这都是理论上如何&#xff0c;可实际上呢。于是有必要结合更实际…

基于VM虚拟机下Ubuntu18.04系统,Hadoop的安装与详细配置

参考博客&#xff1a; https://blog.csdn.net/duchenlong/article/details/114597944 与上面这个博客几乎差不多&#xff0c;就是java环境配置以及后面的hadoop的hdfs-site.xml文件有一些不同的地方。 准备工作 1.更新 # 更新 sudo apt update sudo apt upgrade2.关闭防火…

数据结构-栈的实现

1.栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&…

git-2

1.分离头指针情况下的注意事项 分离头指针指的是变更没有基于某个branch去做&#xff0c;所以当进行分支切换的时候&#xff0c;在分离头指针上产生的commit&#xff0c;很可能会被git当作垃圾清理掉&#xff0c;如果你认为是重要的内容&#xff0c;切记需要绑定分支 2.进一步…

NFC:应用场景广泛的短距离通信技术

NFC&#xff1a;应用场景广泛的短距离通信技术 一、NFC 技术介绍1.1 NFC 技术应用场景1.2 NFC 技术优点1.3 NFC 工作原理 二、NFC 开发2.1 NFC 应用开发流程2.2 NFC 读取和写入2.3 NFC 读写功能示例 三、总结 一、NFC 技术介绍 NFC &#xff08;Near-field communication&…

hadoop在本地创建文件,然后将文件拷贝/上传到HDFS

1.要$cd {对应目录}进入到对应目录&#xff0c;一般为 cd /usr/local/hadoop/ 2.创建文件&#xff0c;$sudo gedit {文件名}&#xff0c;例 sudo gedit test.txt 然后在弹出的txt文件输入内容&#xff0c;点击右上角的保存之后&#xff0c;关闭即可。 3.拷贝本地文件到HDF…

机器学习第12天:聚类

文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话&#xff1a;“如果智能是蛋糕&#xff0c;无监督学习将是蛋糕本体&a…