HTTP常用方法及状态码

1.HTTP常用方法

1.1 GET:获取资源

GET本质就是发送一个请求来获取服务器上的某一资源。资源通过HTTP头部和呈现数据返回给客户端

1.2 HEAD:获取报文首部

HEAD和GET本质是一样的,区别在于HEAD不含呈现数据,而仅仅是HTTP头部信息,一般常用于确认URL的有效性及资源更新的日期时间

1.3 POST:传输实体主题

POST向服务器提交数据

补充:GET和POST的区别:
  • GET提交的数据会放在URL之后,以?分割URL和数据,参数之间以&相连,POST方法是把提交的数据放在HTTP包的Body中
  • GET提交的数据大小有限制,最多只能有2K字节(这是因为浏览器对URL长度有限制),而POST方法提交的数据没有限制
  • GET方法需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值
  • GET方式提交数据会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将会出现在URL上,如何页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码

1.4 PUT:传输文件

PUT和POST极为相似,都是向服务器发送数据,但是它们之间有一个重要的区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定

1.5 OPTIONS:询问支持的方法

OPTIONS用户获取当前URL所支持的方法

2.HTTP常用状态码

1XX:表示接收的请求正在处理

2XX:表示请求成功

200

200表示请求在服务器端被正常处理了,在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变

204

204表示服务器接收的请求已经成功处理了,但是在返回的响应报文中不含实体的主体部分,另外,也不允许返回任何实体的主体。当浏览器在发送请求收到204响应后,它显示的页面不会发生更新,通常应用在只需要客户端向服务器发送信息,而服务器不需要发送新信息的情况下使用

206

206表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求,响应报文内包含指定返回的实体内容

3XX:重定向

301

永久重定向,301状态码表示请求的资源已经分配了新的URL,以后请求该资源应该访问新的URL

302

临时重定向,302表示请求的资源已经被分配了新的URL,希望客户端本次能使用新的URL访问
301和302状态码都表示重定向,就是说浏览器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取。它们的不同点在于:301表示旧地址的资源已经被永久的移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧地址交换为重定向之后的网址;302表示旧地址的资源还在(仍然可以访问),这个重定向只是临时地从旧地址跳转到新地址

303

该状态码和302基本相似,表示由于请求资源存在另外一个URL,应使用GET方法定向获取请求的资源

307

临时重定向,307不会强制浏览器将POST方法改为GET方法,而是遵循浏览器自身的标准

4XX:表示客户端错误

400

400状态码表示请求报文中存在语法错误

401

401状态码表示发送的请求需要有通过HTTP认证的认证信息,第一次收到401状态码表示需要进行用户认证,第二次再收到401状态码说明用户认证失败

403

403状态码表明对请求资源的访问被服务器拒绝了,当未获得文件系统的访问授权,访问权下出现某些问题等都可能发生403

404

404状态码表示服务器上无法找到请求资源,也有可能是服务器端在拒绝请求且不想说明原因的时候使用

5XX:服务器错误

500

500状态码表示服务器端在执行请求时发生了错误

503

503状态码表明服务器暂时处于超负荷或正在进行维护,现在无法处理请求

ArkTS本身作为HarmonyOS生态下的一种声明式开发语言,主要用于构建用户界面和应用程序逻辑,并未直接提供HTTP协议的支持。然而,在实际开发过程中,开发者通常通过集成第三方库或者使用HarmonyOS提供的网络请求API来实现HTTP通信功能。 以下是常见的HTTP状态码及其含义: ### 常见HTTP状态码分类 #### 1xx:信息性状态码 这些状态码表示临时的响应,仅包含状态行和可选的头部字段。 - **100 Continue** 表示客户端应继续发送请求[^4]。 - **101 Switching Protocols** 表示服务器已接受客户端的协议切换请求[^4]。 #### 2xx:成功状态码 这些状态码表示请求已被成功接收、理解和处理。 - **200 OK** 表示请求成功[^4]。 - **201 Created** 表示资源创建成功[^4]。 - **204 No Content** 表示服务器成功处理了请求,但无需返回任何实体内容[^4]。 #### 3xx:重定向状态码 这些状态码表示客户端需进一步操作才能完成请求。 - **301 Moved Permanently** 表示所请求的资源已永久移动到新位置[^4]。 - **302 Found** 表示所请求的资源暂时位于不同的URI[^4]。 - **304 Not Modified** 表示资源未修改,客户端可以继续使用缓存版本[^4]。 #### 4xx:客户端错误状态码 这些状态码表示客户端可能发生了错误。 - **400 Bad Request** 表示服务器无法理解请求的语法[^4]。 - **401 Unauthorized** 表示当前请求需要有效的身份验证凭证[^4]。 - **403 Forbidden** 表示服务器拒绝执行请求[^4]。 - **404 Not Found** 表示服务器找不到请求的资源[^4]。 #### 5xx:服务器端错误状态码 这些状态码表示服务器在尝试处理请求时发生内部错误。 - **500 Internal Server Error** 表示服务器遇到意外情况,阻止其履行请求[^4]。 - **502 Bad Gateway** 表示服务器作为网关或代理,从上游服务器接收到无效响应[^4]。 - **503 Service Unavailable** 表示服务器目前无法处理请求[^4]。 - **504 Gateway Timeout** 表示服务器作为网关或代理,未能及时从上游服务器获得响应[^4]。 ### 示例代码 以下是一个简单的HTTP请求示例,展示如何捕获并解析HTTP状态码: ```typescript import http from '@ohos.net.http'; function fetchResource(url: string): void { let httpRequest = http.createHttp(); httpRequest.request( url, (err, data) => { if (err) { console.error(`Error occurred: ${JSON.stringify(err)}`); return; } console.log(`Status Code: ${data.statusCode}`); // 输出状态码 console.log(`Response Body: ${data.responseBody}`); }, { method: 'GET' } // 配置请求方法 ); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值