这几天学习了一下HTTP协议状态码(HTTP Status Code),做了一些学习总结。
一、 什么是HTTP Status Code
客户机与服务器建立连接后,发送一个请求给服务器(如:Get /index.html http/1.1),在服务器接到请求后,给予客户机相应的响应信息,包括该信息的协议版本号、HTTP协议状态码、服务器信息、实体信息、内容等(如:http/1.1 200 ok)。在通讯时,客户端发出连接请求,服务器端建立连接,客户端发出HTTP请求,服务器端返回响应信息,由此完成一个HTTP操作。
二、 HTTP Status Code的意思
1XX 都表示临时响应,客户端在收到常规响应前,会接受一个或多个1XX响应
100 继续
101 切换协议
2XX 表示服务器端成功接受客户端请求
200服务器成功处理请求
201 已创建
202 已接受
203 非权威性信息
204 无内容
205 重置内容
206 部分内容
3XX 表示重定向,客户端必须采取更多操作来实现请求
300 多种选择
301 永久重定向
302 对象临时移走
303 查看其他位置
304 未修改
305 使用代理
307 临时重定向
4XX 表示客户端的请求有错误
400 请求错误,服务器端不理解客户端的请求
401 验证失败
403 服务器拒绝访问
404 服务器找不到请求的网页
405 方法禁用
406 客户端浏览器不接受所请求页面的MIME类型
407 需要代理授权
408 请求超时
409 服务器完成请求时冲突
410 资源已永久删除
411 需要有效长度
412 未满足前提条件
413 请求实体过大
414 请求的URL过长
415 不支持的媒体类型
416 请求范围不合要求
417 执行失败
5XX 表示服务器遇到错误无法完成客户端请求
500 内部服务器错误
501 服务器不支持的请求
502 网关错误
503 服务不可用(一般是临时性的)
504 网关超时
505 HTTP版本不支持
三、 一些实际体会
在实际应用中,经常会碰到的协议状态码主要包括200、301、302、401、403、404、408、413、414、500、503、504这些,了解了这些代码所对应的意义,以及出现这些代码所意味的服务器或客户端的一些问题,以及常见问题的解决方法,工作起来效率会提高很多。
分享到:
相关推荐
CRSM命令学习总结完整[归纳] CRSM(Card Reader SIM Manager)是一种标准的AT命令,用于访问和控制SIM卡。下面是CRSM命令的学习总结: 一、CRSM命令的基本概念 CRSM命令是一种标准的AT命令,用于访问和控制SIM卡...
在本篇“AJAX学习总结(一)--基于jQuery第一个实例”中,我们将探讨如何使用jQuery库实现异步JavaScript和XML(AJAX)技术。AJAX允许我们在不刷新整个页面的情况下,更新网页的部分内容,从而提供更流畅的用户体验...
Day03回顾 1、requests模块方法 1、get()参数 1、查询参数 :params -> 字典 2、代理 :proxies -> 字典 ... 4、status_code -> 服务器响应码 2、数据持久化存储 1、MySQL流程 1、db = pymysql.connect("localh
总结了学习loadrunner时经常遇到的各种问题,以及问题的解决方案,对于新手很有帮助
int statusCode = client.executeMethod(method); // 检查状态码 if (statusCode == 200) { // 获取响应内容 String responseBody = method.getResponseBodyAsString(); System.out.println(responseBody); ...
int statusCode = response.getStatusLine().getStatusCode(); System.out.println("Status Code: " + statusCode); System.out.println("Response Headers: " + response.getAllHeaders()); System.out.println...
if (response.statusCode == 200) { // 成功获取数据,处理响应 print(response.body); } else { // 请求失败,打印错误信息 throw Exception('Failed to load data'); } } ``` 对于POST请求,可以使用`...
MsgBox "HTTP Status: " & response.StatusCode & vbCrLf & _ "Content-Type: " & response.ContentType Else MsgBox "请求失败,状态码:" & inet.Status End If ``` 上述代码首先创建一个INET控件实例,...
总结,Hadoop的源代码提供了一个学习分布式计算和大数据处理的绝佳平台。无论是对系统内部机制的探究,还是针对具体业务场景的优化,源代码都是开发者不可或缺的参考资料。通过对源代码的深入学习和实践,我们可以...
Console.WriteLine($"请求失败,状态码:{response.StatusCode}"); } } } ``` 上述代码创建了一个`HttpClient`实例,然后调用`GetAsync`方法发送GET请求到指定URL。如果请求成功,它会读取响应内容并打印;如果...
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { // 处理失败响应 } }); ``` 六、优化与进阶 随着Android平台的发展,`android-async-http`库逐渐面临一些...
标题 "BITEK BIT1618C AOSD demo code" 涉及到的是一个基于BITEK公司的BIT1618C芯片的显示控制器应用示例代码,主要用于AT070TN94液晶显示屏。这个项目可能是为了演示如何在实际应用中配置和驱动BIT1618C芯片,以便...
print("请求失败,状态码:", response.status_code) ``` 这个例子展示了如何获取一个网站的所有文章标题。实际应用中,你可能需要根据目标网站的具体结构进行调整。 五、反爬与IP代理 为防止过度抓取,许多网站会...
int statusCode = httpclient.executeMethod(getmethod); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed: " + getmethod.getStatusLine()); } // 获取响应体 byte[] ...
总结,`commons-httpclient-3.0.jar`在JAVA中的应用,不仅提供了一种简单易用的HTTP客户端实现,还具有丰富的特性和扩展性,对于理解和实现网络通信具有重要的学习价值。然而,随着技术的进步,开发者应关注并适时...
$status_code = $response->getStatusCode(); $body = (string) $response->getBody(); $headers = $response->getHeaders(); ``` "overtrue/http"库还提供了错误处理机制,当请求失败时,会抛出异常,这样开发者...
总结来说,通过Python编写脚本监控Apache服务器的server-status模块,可以有效地获取服务器的实时状态,包括客户端信息和请求URL,这对于监控服务器性能、调试和安全审计都十分有用。在实践过程中,确保遵循最佳安全...
if (statusCode == HttpStatus.SC_OK) { BufferedReader reader = new BufferedReader( new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8")); String responseContent = reader.readLine()...