【Java EE】网络原理——HTTP响应

目录

1.认识“状态码”(status code)

1.1 200 OK

1.2 404 Not Found

1.3 403 Forbodden

1.4 Method Not Allowed

1.5 Internal Sever Error

1.6 504 Gsteway Timeout

1.7 Move temporarily

1.8 Moved Permanently

1.9状态码小结

2.认识响应“报头”(header)

2.1 Content-Type

3.认识响应“正文”(body)

3.1 text/html

3.2 text/css

3.3 application/javascript

3.4 application/json


1.认识“状态码”(status code)

状态码表示访问一个页面的结果。(是访问成功,还是失败,还是其他的一些情况)

以下是常见的状态码

1.1 200 OK

这是一个最常见的状态码,表示访问成功

抓包抓到的大部分结果都是200

例如访问搜狗主页

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 10 Jun 2021 06:07:27 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Set-Cookie: black_passportid=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; do
Pragma: No-cache
Cache-Control: max-age=0
Expires: Thu, 10 Jun 2021 06:07:27 GMT
UUID: 80022370-065c-49b0-a970-31bc467ff244
Content-Length: 14805
<!DOCTYPE html><html lang="cn"><head><meta name="viewport" content="width=device
......

注意:在抓包观察响应数据的时候,可能会看到压缩之后的数据,形如:

网络传输中的“带宽”是一个稀缺资源,为了传输效率更高往往会对数据进行压缩。

点击Fiddler中的

即可进行解压缩,看到原始的内容

1.2 404 Not Found

没有找到资源

HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 10 Jun 2021 05:19:04 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Content-Length: 564
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
1.3 403 Forbodden

表示访问被拒绝,有的页面通常需要用户具有一定的权限才能访问(登录后才能访问),如果用户没有登录直接访问,很容易就见到403.

HTTP/1.1 403 Forbidden
Date: Thu, 10 Jun 2021 06:05:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Server: nginx
Vary: Accept-Encoding
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Expires: Sun, 1 Jan 2000 01:00:00 GMT
Pragma: must-revalidate, no-cache, private
Cache-Control: no-cache
Set-Cookie: oschina_new_user=false; path=/; expires=Mon, 10 Jun 2041 06:05:40 -0
Set-Cookie: gitee-session-n=ejEvQnYza2RlaXh0KzRaN3QrNWI2TzdLOE03bU5UNjRKdGlqWUFk
X-Request-Id: 82a740fb98838c305c4cc597ab6f48c0
X-Runtime: 0.020299
Content-Length: 7092
<!DOCTYPE html>
< html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>您的访问受限 (403)</title>
......
1.4 Method Not Allowed

前面我们已经学习了HTTP中所支持的方法,有GET,POST,PUT,DELETE等。

但是对方的服务器不一定都支持所有的方法(或者不允许用户使用一些其他的方法)

1.5 Internal Sever Error

服务器出现内部错误,一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这个状态码

平时常用的网站很少会出现500(但是偶尔也能看到)

1.6 504 Gsteway Timeout

当服务器负载比较大的时候,服务器处理单条请求的时候消耗的时间就会很长,就可能会导致出现超时的情况。

这种情况在双11等秒杀的场景中容易出现,平时不太容易见到。

1.7 Move temporarily

临时重定向

在登陆页面中经常会见到302.用于实现登录成功后自动跳转到主页。

响应报文的header部分包含一个Location字段,表示要跳转到那个页面

HTTP/1.1 302 Found
Date: Thu, 10 Jun 2021 06:49:26 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Server: nginx
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Expires: Sun, 1 Jan 2000 01:00:00 GMT
Pragma: must-revalidate, no-cache, private
Location: https://gitee.com/HGtz2222
Cache-Control: no-cache
Set-Cookie: oschina_new_user=false; path=/; expires=Mon, 10 Jun 2041 06:49:24 -0
Set-Cookie: gitee_user=true; path=/
Set-Cookie: gitee-session-n=UG5CdVZQUkVUamxsWis3b0JoL2dyTDRLVTk1WXVCK2VwaGd0OGFK
X-Request-Id: d45ade01dbeffc99a3688d3411b3381f
X-Runtime: 0.133587
Content-Length: 92
<html><body>You are being <a href="https://gitee.com/HGtz2222">redirected</a>.</
1.8 Moved Permanently

永久重定向。当浏览器收到这种响应时,后续的请求都会自动改成新的地址。

301也是通过Location字段来表示要重定向到的新地址。

1.9状态码小结
类别原因短语
1xxInformational(信息性状态码)接收的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重新向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxSever Error(服务器错误状态码)服务器处理请求出错

2.认识响应“报头”(header)

响应报头的基本格式和请求报头的格式基本一致。

类似于Content-Type,Content-Length等属性的含义也和请求中的含义一致。

2.1 Content-Type

响应中的Content-Type常见的取值有以下几种:

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

3.认识响应“正文”(body)

正文的具体格式取决于Content-Type。观察上面几个抓包结果中的响应部分。

3.1 text/html
Server: nginx/1.17.3
Date: Thu, 10 Jun 2021 07:25:09 GMT
Content-Type: text/html; charset=utf-8
Last-Modified: Thu, 13 May 2021 09:01:26 GMT
Connection: keep-alive
ETag: W/"609ceae6-3206"
Content-Length: 12806
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible body,#app {height: 100%;margin: 0px;padding: 0px;}.chromeframe {margin: 0.2em 0;background: #ccc;color: #000;padding: 0.2em 0;}#loader-wrapper {position: fixed;top: 0;
left: 0;width: 100%;height: 100%;z-index: 999999;}
......
3.2 text/css
HTTP/1.1 200 OK
Server: nginx/1.17.3
Date: Thu, 10 Jun 2021 07:25:09 GMT
Content-Type: text/css
Last-Modified: Thu, 13 May 2021 09:01:26 GMT
Connection: keep-alive
ETag: W/"609ceae6-3cfbe"
Content-Length: 249790
@font-face{font-family:element-icons;src:url(../../static/fonts/element-icons.53
......
3.3 application/javascript
HTTP/1.1 200 OK
Server: nginx/1.17.3
Date: Thu, 10 Jun 2021 07:25:09 GMT
Content-Type: application/javascript; charset=utf-8
Last-Modified: Thu, 13 May 2021 09:01:26 GMT
Connection: keep-alive
ETag: W/"609ceae6-427d4"
Content-Length: 272340
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(t,
......
3.4 application/json
HTTP/1.1 200
Server: nginx/1.17.3
Date: Thu, 10 Jun 2021 07:25:10 GMT
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
vary: accept-encoding
Content-Length: 12268
{"msg":"操作成功","code":200,"permissions":[] }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派部署harbor_arm64

文章目录 树莓派4b部署Harbor-arm64版本docker-compose维护命令访问harbor 192.168.1.111认用户名密码admin/Harbor12345 树莓派4b部署Harbor-arm64版本 harbor-arm版本 部署&#xff1a;参考 wget https://github.com/hzliangbin/harbor-arm64/releases/download/v1.9.3/ha…

java项目之高校教师科研管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的高校教师科研管理系统源码。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 高校教师科研管…

linux下常用软件

文章目录 1. GIMP图片编辑工具&#xff0c;用于处理文档图片2. 星火字典stardict 1. GIMP图片编辑工具&#xff0c;用于处理文档图片 install 在linux应用商店里搜索GIMP 就能出来 语言设置 辑—首选项—界面—语言&#xff0c;在下拉列表中选择[汉语_zh-CN]&#xff0c;对应的…

评测 香橙派OrangePi在智能交通上的应用

1、OrangePi应用场景 关于 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能 AI 开发板&#xff0c;其搭载了昇腾 AI 处理器&#xff0c;可提供 8TOPS INT8 的计算能力&#xff0c;内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算&#…

OpenMV的VisionBoard视觉识别开发板学习记录

此篇博客仅用于对VisionBoard的开发板的学习研究记录&#xff0c;没有教学内容。 一、资料来源 开发板资料链接 开发板环境搭建手册 开发板视频教程 板子的资料网站 openmv官方的网站 目录 一、资料来源二、针对 VisionBoard的目标识别和定位总结1. 目标识别功能1.1 物体检测…

延迟队列的时间轮算法实现

业务背景 很多时候&#xff0c;业务需要在一段时间之后完成一个工作任务。例如&#xff0c;滴滴打车订单完成后&#xff0c;如果用户一直不评价&#xff0c;会在48小时后自动评价为5星。 一般来说&#xff0c;实现这类需求需要设置一个定时器&#xff0c;在规定的时间后自动执…

芯片原厂驱动开发工程师:初学到精通,如何快速成长?

01 前言 大家好&#xff0c;我是XX&#xff0c;来自湖南XX学院&#xff0c;电子信息18级&#xff0c;也曾在创新基地控制组学习过两三年&#xff0c;毕业后就职于一家芯片原厂的解决方案部&#xff0c;担任驱动工程师的职位&#xff0c;算上实习期&#xff0c;我的工作时长已有…

Redis操作之Jedis

Jedis是Redis官方推荐的Java连接开发工具&#xff0c;它是一个流行的Redis客户端中间件&#xff0c;提供了简单易用的API和高性能的连接池管理。Jedis是一个轻量级的库&#xff0c;适用于大多数Redis应用场景&#xff0c;包括数据缓存、消息队列等。 一、简介 功能全面&#…

htb-Mailing

因为做windows服务器渗透较少&#xff0c;不妥的地方还请师傅们指出 可先看思路&#xff0c;实在不行再看writeup 任意文件下载拿pop3登录邮箱——》利用邮件服务器漏洞拿下NTLM——》利用组件版本漏洞拿下 拿shell 端口扫描开放服务 Host is up (0.91s latency). Not shown:…

CSS学习笔记:rem实现移动端适配的原理——媒体查询

移动端适配 移动端即手机端&#xff0c;也称M端 移动端适配&#xff1a;同一套移动端页面在不同屏幕尺寸的手机上可以实现宽度和高度的自适应&#xff0c;也就是页面中元素的宽度和高度可以根据屏幕尺寸的变化等比缩放 rem配合媒体查询可实现移动端适配 rem单位 媒体查询 …

SpringAdminClient如何将Httpbasic账号密码告知SpringAdminServer

场景&#xff0c;因为Config Service开了权限校验&#xff0c;注册到eureka之后&#xff0c;SpringAdmin查看信息会报错401&#xff0c;如果想在SpringAdmin中正确的看到Config Service的actuator信息则需要将账号密码告知给SpringAdmin&#xff0c;磁力用的是Eureka作为发现服…

1045. 买下所有产品的客户

1045. 买下所有产品的客户 题目链接&#xff1a;1045. 买下所有产品的客户 代码如下&#xff1a; # Write your MySQL query statement below select customer_id from Customer where product_key in (select product_key from Product) group by customer_id having count(…

WPF 如何调试

简述 它是一种系统机制&#xff0c;用于识别和修复一段代码中的错误或缺陷&#xff0c;这些错误或缺陷的行为与您的预期不同。调试子系统紧密耦合的复杂应用程序并不容易&#xff0c;因为修复一个子系统中的错误可能会在另一个子系统中创建错误。 在 C# 中调试 在 WPF 应用程序…

javaIO流知识点概况

一、前言&#xff1a; 1.1.流的概念: java将输入与输出比喻为"流"&#xff0c;英文:Stream. 就像生活中的"电流","水流"一样,它是以同一个方向顺序移动的过程.只不过这里流动的是字节(2进制数据).所以在IO中有输入流和输出流之分,我们理解他们…

Vue3中使用 filter 方法通过 id 删除数组中的指定对象

Vue中使用 filter 方法通过 id 删除数组中的指定对象 一、前言1、示例2、案例 一、前言 在 Vue3 中&#xff0c;我们经常需要处理数据并进行相应操作&#xff0c;比如删除数组中的特定对象。在这篇文章中&#xff0c;我们将学习如何使用 filter 方法和响应式变量来实现这一目标…

单点11.2.0.3备份恢复到单点11.2.0.4

保命法则&#xff1a;先备份再操作&#xff0c;磁盘空间紧张无法备份就让满足&#xff0c;给自己留退路。 场景说明&#xff1a; 1.本文档的环境为同平台、不同版本&#xff08;操作系统版本可以不同&#xff0c;数据库小版本不同&#xff09;&#xff0c;源机器和目标机器部…

swiftui基础组件Image加载图片,以及记载gif动图示例

想要在swiftui中展示图片&#xff0c;可以使用Image这个组件&#xff0c;这个组件可以加载本地图片和网络图片&#xff0c;也可以调整图片大小等设置。先大概看一下Image的方法有哪些可以用。 常用的Image属性 1.调整图像尺寸&#xff1a; 使用 resizable() 方法使图像可调整…

Java如何分块读取大文件

在Java中&#xff0c;分块读取大文件通常使用FileInputStream或BufferedInputStream结合循环来实现。以下是一个基本的示例&#xff0c;展示如何分块读取大文件&#xff1a; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException…

黑龙江等保测评:强化网络安全的北方防线

在数字化时代&#xff0c;网络空间已成为国家发展的新领域&#xff0c;其安全直接关系到国家安全、社会稳定和个人隐私。作为中国东北的重要省份&#xff0c;黑龙江省积极响应国家网络安全战略&#xff0c;深入实施信息安全等级保护制度&#xff08;简称“等保”&#xff09;&a…

量子密钥分发系统基础器件(一):光纤干涉仪

干涉仪的基本原理是利用波的叠加来获得波的相位信息&#xff0c;从而获取实验中所关心的物理量。光纤干涉仪是由光学干涉仪发展而来的&#xff0c;利用光纤实现光的干涉&#xff0c;由于光纤取代透镜系统构成的光路具有柔软、形状可随意变化、传输距离远等特点&#xff0c;当前…