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) (传输二进制等格式数据) |

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

相关推荐
ControlRookie1 小时前
第15篇_Client 04|GET、POST 和 Body 怎样保持一致
http·codesys·plc通信·controlrookie
mitugaoyang19931 小时前
marvell88Q5152交换机开发(0)-芯片介绍
网络
CDN3602 小时前
流媒体加速实践:出海东南亚短视频点播频繁缓冲,HLS 分片与 Nginx 配置调优
java·网络·nginx·流媒体加速
xiaoxiangsiyan2 小时前
RHCE2026完整版全知识点清单
运维·网络·学习·自动化·rhce
AlanBruce2 小时前
摩尔信使MThings新功能:水电不分家、一键设备扫描
网络·自动化·plc·mthings·摩尔信使·电气·西门子s7
Titan20243 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
RisunJan4 小时前
Linux命令-tcpdump(网络数据包捕获)
linux·网络·tcpdump
Titan20244 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
啦啦啦啦啦zzzz6 小时前
TCP协议详解
网络·网络协议·tcp/ip
jason.zeng@15022077 小时前
服务器磁盘读写效率,网络吞吐量查看,mysql性能调优
服务器·网络·mysql