Java EE 网络原理之HTTP 响应详解

这篇具有很好参考价值的文章主要介绍了Java EE 网络原理之HTTP 响应详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 认识"状态码"(status code)

表示了这次请求对应的响应,是什么样的状态
(成功,失败,其他的情况,对应的原因…)

Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
这里的状态码非常多,我们需要了解里面常见的状态码


2XX 都表示 成功

  • 200 最常见
    Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java

3xx 表示 重定向
请求中访问的是 A 这样的地址,响应返回了一个重定向报文,告诉你应该要访问 B 地址
很多时候,页面跳转,就可以通过重定向来实现
还有的时候,摸个网站,服务器迁移了(IP/域名改变了)
就可以给旧的地址挂一个重定向响应,访问旧地址的用户就自定跳转到新的地址

重定向的响应报文中,会带有 Location 字段
描述出当前要跳到哪个新的地址

  • 301:永久重定向
  • 302:临时重定向

4xx 表示请求错误

  • 404 Not Found
    请求中访问的资源,在服务器上不存在
    Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
    404 这个状态码表示的是资源不存在
    同时在 body 中也是可以返回一个指定的错误页面的
    很多网站会把这个错误页面做的很丰富
  • 403 Fobidden
    表示访问的资源没有权限
  • 418 I am a teapot(杯具)
    418 状态码是 HTTP RFC 文档中专门规定的一个状态码
    这个状态码没有实际的意义,只是“开个玩笑”,称为彩蛋
    不过在以后尽量不要搞

2. 通过 form 表单构造 HTTP 请求

如何让客户端构造一个 HTTP 请求?

  1. 直接在浏览器 地址输入 url,此时构造了一个 GET 请求
  2. html 中,一些特殊的 html 标签,可能会触发 GET 请求
    (img,a,link,script)
  3. 通过 form 表单来触发 GET/POST 请求
    form 本质也是一个 HTML 标签
<html>
    <head>
        
    </head>
    <body>
        hello world
    </body>
</html>
  • 为开始标签
  • 为结束标签
  • 中为标签的内容(还可以嵌套其他结构)
  • 放的是页面显示的内容

浏览器会与 html 来书有一定的鲁棒性
即使给出了一个错误的(不规范)的 html 代码,也是可以进行解析并显示的(浏览器会尽可能的进行显示)

直接输入 ! + table 就可以生成基本的 html 代码模版
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java


form 表单如何编写

用到form 标签
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
开始标签中,可以写属性,属性是一些“键值对”
可以有多个属性,多个键值对之间使用 空格 来分割,键 和 值之间使用 = 分割
键不需要有引号,值需要有双引号


action 后面表示要访问请求的 url 路径是什么
method 属性描述了当前要构造的请求是 get 还是 post
from 只支持 get 和 pose,不支持其他的 http 方法
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java


输入框中的内容就会被构造成 http 请求的 query string
(query string 还键值对,其中 key 就是 input 输入框的 name 属性,value 就是输入框用户输入的内容)

Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java


submit 是按钮
这里 value 里面的内容就是按钮上显示的文本
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java

Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java


Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java

Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
这里 input 输入框中的内容已经展示了出来
但是点击之后会出现 404,要是先要有一个正确的响应,往往需要服务器这边的代码配合


Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java

Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
将里面的 get 改成 post 之后
我们可以看最后一行:
对于 GET 来说,这几个键值对,是在 url 中
对于 POST 来说,这几个键值对,在 body 中

3. 通过 ajax 构造 HTTP 请求

由于,form 有一些缺陷,只支持 GET 和 POST,不支持其他方法,而且 form 会触发页面跳转(有的时候不想跳转)
这个时候我们就引入了 ajax
ajax,通过 js 提供的 api 来构造 http 请求,同样可以使用 js 灵活处理,想要怎么处理都行,或者想跳转不跳转也都行
这样就给前端代码,带来了很多的可操作空间
现在的网站,主体都是通过 ajax 的方式来进行交互

浏览器原生提供了 ajax 的 api,原生的 api 不好用
所以这里我们使用第三方库,jquery

(1)引入 jquery 库(第三方库,是需要额外下载引入的)
前端引入第三方库非常简单,只要在代码中写一个库的地址就可以

先搜索 jquery cdn
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
然后点开,复制链接就可以了
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
js 和 java 之间有一定差别的,但是差别不大
差别主要体现在类型系统上
基本的 变量电仪,运算符,表达式,条件…(这些的差别不大)
js 的数组和 java 差异比较大了(也是和类型系统有关)

(2)编写代码
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
$ 是一个变量名(全局变量,在 jquery 定义的)
通过这个变量来调用一些方法,使用 jquery 中的 api


js 中 { } 表示对象
{ } 里面是使用 键值对 方式来表述“属性名” 和 “属性值”
对象属性的值,也可以是一个函数
这个函数,是一个匿名函数,也就相当于 lambda 表达式
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java

这里 success 这个函数,不是立即执行的
而是服务器返回 200 这样的响应的时候,才会执行到 success
服务器什么时候返回 200
可能是 10ms 之后,也可能是 1s 之后,也可能永远也不返回
什么时候返回 200 了,什么时候执行 success
success 执行时机不是程序员自己能控制的
而是在合适的时候自动被调用的

像这样的函数 就是“回调函数”

  1. C 进阶,指针进阶 => 函数指针 =>重要用途就是作为回调函数
  2. Java 数据结构 Comparable 和 Comparator compareTo compare 比较方法
  3. 线程,run 方法,也是回调函数

这个写法就是定义变量
不需要写类型,不管什么类型,都是 let
变量具体类型是根据 = 后面的值的类型来确定的
此处 ‘1’ 是一个字符串,value 1 变量类型也就是字符串了
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java


使用 JSON.stringify(body) 就可以把 js 对象转成 json 格式的字符串了
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
这个代码格式如此,但是当前直接给搜狗发这个,还不太行
搜狗这里的这个路径不一定能支持 ajax 的 post
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
在后面自己写服务器,就可以完成前后端的配合了


这里我们也可以使用 postman 来创建图形化界面
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java
也可以使用 postman 直接生成 ajax 代码
Java EE 网络原理之HTTP 响应详解,Java EE,java-ee,http,java文章来源地址https://www.toymoban.com/news/detail-773520.html

到了这里,关于Java EE 网络原理之HTTP 响应详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java EE】-HTTP请求构造以及HTTPS的加密流程

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【JavaEE】 分享 : 在满园弥漫的沉静的光芒之前,一个人更容易看到时间,并看到自己的身影。——史铁生《我与地坛》 主要内容 :构造http请求,不需要写代码直接发送http请求:地址栏输入地址,html中 img标签,scri

    2024年02月02日
    浏览(35)
  • 【Java EE初阶二十一】http的简单理解(二)

            Referer 描述了当前页面是从哪个页面跳转来的,如果是直接在地址栏输入 url(或者点击收藏夹中的按钮) 都是没有 Referer。如下图所示:         HTTP 最大的问题在于\\\"明文传输”,明文传输就容易被第三方获取并篡改.         HTTPS 针对 HTTP 数据进行了加密 (h

    2024年02月22日
    浏览(29)
  • 【Java EE初阶十三】网络初识

            网络发展的几个主要时期:         单机时代-局域网时代-广域网时代-移动互联网时代         随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成 业务,就有了网络互连。         网络互连: 将多台计

    2024年02月20日
    浏览(32)
  • 【Java EE】Spring请求如何传递参数详解

    访问不同的路径,就是发送不同的请求.在发送请求时,可能会带⼀些参数,所以我们在学习Spring的请求时,主要是学习如何传递参数到后端以及后端如何接收. 下面博主会对传递参数进行一个详解,咱们主要是使⽤浏览器和Postman来模拟 当我们运行后,用浏览器进行访问 http://127.0.

    2024年04月12日
    浏览(38)
  • 【Java EE初阶十五】网络编程TCP/IP协议(二)

            tcp的socket api和U大片的socket api差异很大,但是和前面所讲的文件操作很密切的联系         下面主要讲解两个关键的类:         1、ServerSocket:给服务器使用的类,使用这个类来绑定端口号         2、Socket:即会给服务器使用,又会给客户端使用;         

    2024年02月20日
    浏览(40)
  • J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

      简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition 上面的几个名词都是下面的内容的简写: J2EE(Java 2 Platform, Enterprise Edition) Java EE (Java Platform, Enterprise Edition) Jakarta EE(Jakarta Enterprise Edition) 上面的排序是按照时间演进来进行排序。   1998年12月,SUN公司发

    2023年04月26日
    浏览(31)
  • 【Java EE】文件操作

    目录 1.认识文件 2.树型结构组织和目录 3.文件路径(Path) 4.其他知识 5.Java中操作文件 5.1File概述 5.1.1属性 5.1.2构造方法 5.1.3方法 5.2代码示例 1.认识文件 我们先来认识狭义的文件(file)。针对1硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存一个整

    2024年04月22日
    浏览(41)
  • JAVA EE 第一周

    计算机Z20-第1周作业        总分:100分              1 . 单选题 简单 6分 下列选项中,哪些属于网站建设常用技术( )。 A.HTML B.JavaScript C.CSS D.以上都是 2 . 单选题 简单 6分 下列选项中,哪个不是静态网页的文件扩展名( )。 A.xml B.jsp C.htm D.shtml 3 . 单选题 简单 6分

    2024年02月06日
    浏览(31)
  • 【Java EE】@RequestMapping注解

    在Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤ 我们先来看看代码怎么写 创建⼀个 TalkController 类,实现⽤⼾通过浏览器和程序的交互,具体实现代码如下: 这时候我们使用浏览器访问 http://127.0.0.1:8080/hi 就可访问 @RequestMapping 是Spring Web M

    2024年04月09日
    浏览(31)
  • 【Java EE 初阶】文件操作

    目录 1.什么是文件? 1.在cmd中查看指定目录的树形结构语法 2.文件路径 从当前目录开始找到目标程序(一个点) 返回到上一级目录,再找目标程序(两个点) 2.Java中文件操作 1.File概述 1.属性 2. 构造方法 3.常用方法  代码展示: 4.常用方法2 3. 文件内容的读写---数据流 1.I

    2024年02月06日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包