JavaEE初阶:网络原理-HTTP(下)

目录

[1. HTTP 响应(Response)](#1. HTTP 响应(Response))

[1.1 响应报文结构](#1.1 响应报文结构)

[1.2 详解"状态码"](#1.2 详解“状态码”)

301 "Moved Permanently"

403 "Forbidden"

404 "Not Found"

405 "Method Not Allowed"

500 "Internal Server Error"

504 "Gateway Timeout"

[1.3 响应"报头"(header)](#1.3 响应“报头”(header))

[1.3.1 Content-Type](#1.3.1 Content-Type)

[1.3.2 Content-Length](#1.3.2 Content-Length)

[2. 总结](#2. 总结)


回顾:上篇讲解了HTTP协议格式,以及HTTP请求报文内容解析。

1. HTTP 响应(Response)

1.1 响应报文结构

  1. 首行
  2. 响应头
  3. 空行
  4. body(正文)

响应报文与请求报文最大的差别在首行,其余结构没变化。

响应首行内容包含:协议版本号状态码 和**状态码描述。**例:

1.2 详解"状态码"

200是最常见的状态码,表示请求成功。每个状态码代表的意义都不同。

状态码范围 100~599 :

301 "Moved Permanently"

3xx都表示重定向。

重定向: 程序员修改某资源的URL,用户不知道资源路径已改变,在用旧URL访问资源时会跳转到新URL(新网页);这样把新URL绑定到旧URL上,用旧URL访问跳转就叫重定向

如 301 状态码描述为"Moved Permanently" 译为:永久移动。例:https://baidu.com/ 访问资源时使用抓包工具抓取数据包就能看见:

403 "Forbidden"

4xx都表示客户端错误,不是服务端代码逻辑问题。比如你访问一个未公开的网址或不存在的网址那么这肯定是用户的问题。

403 "Forbidden" 表示权限不够,访问不了。比如访问我的私有代码:SpringBoot常用配置 - 代码片段 - Gitee.com

404 "Not Found"

404 "Not Found" 译为:没有发现。表示用户访问的网址错误,没有该网址对应的资源。

405 "Method Not Allowed"

译为:方法无效。表示 服务端不接受采用某种方法发送而来的请求(get、post、put等)。

500 "Internal Server Error"

5xx都表示服务端错误,如服务器内部错误,如请求处理时间超时。

500 "Internal Server Error" 译为:内部服务器错误。表示服务器内部错误,如服务器崩溃了,会产生这个状态码。

504 "Gateway Timeout"

504 "Gateway Timeout" 译为:网关超时。表示网关服务器等待了长时间未接收到上有服务器的响应结果,而返回的状态码。

服务器集群:

1.3 响应"报头"(header)

请求和响应结构内容最大差异在首行,其他都差不多;下面随便列举两个。

1.3.1 Content-Type

响应中常见的Content-Type:

  • text/html :body 数据格式是HTML
  • text/css :body 数据格式是CSS
  • application/javascript :body 数据格式是JavaScript
  • application/json :body 数据格式是JSON

1.3.2 Content-Length

表示body长度,单位字节。如Content-Length:1234 ,表示body长度为1234byte。

2. 总结

|------------------|-----------------------|
| 请求 | 响应 |
| 首行(方法+URL+协议版本号) | 首行(版本号+状态码+状态码描述) |
| 报头(header) | 报头(header) |
| 空行 | 空行 |
| 正文(body)(不一定有) | 正文(body) (传输二进制等格式数据) |

他们结构类似相同,报文实际意义容易理解,更多要注意的是结构中各 "键值对" 代表了什么意思,有什么作用。

相关推荐
Piko61420 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
茯苓gao1 天前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
万联WANFLOW1 天前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
酱学编程1 天前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
风行南方1 天前
密码学之分组密码
网络·密码学
艾莉丝努力练剑1 天前
OpenCode AI 编程:Ubuntu 24.04 环境安装与使用指南
linux·服务器·网络·人工智能·tcp/ip·ubuntu
谷雪_6581 天前
Linux 网络命名空间:从内核原理到企业级容器网络架构全景实战
linux·网络·架构
liulilittle1 天前
KCC 拥塞控制算法缺陷修复记录(26/07/05)
网络·tcp/ip·计算机网络·c·信息与通信·tcp·通信
Tian_Hang1 天前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
ai生成式引擎优化技术1 天前
从知识连接到智能组织:WSaiOS认知网络的理论框架与系统设计摘要
网络·python·plotly·django·pygame