HTTP进阶,Cookie,响应的回报结果含义,ajax,form表单,不同状态码代表的结果

目录

一、Cookie

二、响应的回报结果含义

三、实际开发中的选择


一、Cookie

Cookie是浏览器本地存储数据的一种机制,

在浏览器访问服务器之间,此时你的浏览器对着个服务器之间是一点也不了解的,你的浏览器上是没有任何和着个服务器相关的数据的。

浏览器拿到这些数据,就可以展示网页了。

与此同时,用户拿着网页,操作的过程中,也会产生出很多临时性数据,像临时数据有的可以放到服务器这边存储,有的不太重要的,就直接放到浏览器这边存储(方便下次之间使用,但是你换个电脑或者浏览器可能就不同了(小时候的4399,就是这样,只有我老玩 的那个浏览器才显示出来最近常玩之类的)

但是有一些数据属于是临时性数据,这样的数据可以放到服务器这边保存,这样你换一个电脑,数据这边还是有效的。4399的账号)

Cookie就是一个主要保存机制,你点击循环也就在Cookie中写入一个数据(比如b站的洗脑循环呢)“洗脑循环"=true ,浏览器就自动存储这个数据,后续在访问B站,浏览器就能够自动把这个读出来,放到http的请求中。

为了保证安全,浏览器对网页做出限制(其中禁止直接访问硬盘就是一个限制),为了保证安全,同时又能存储数据,浏览器提供了Cookie功能(后续有的其他功能)->(Cookie:是按照键值对方式存储一些字符串,这些键值对往往都是服务器返回来的,浏览器把这些键值对按照域名维度,进行分类存储。不同的网站Cookie是独立的,内容都是程序员自定义的)

一个网站中存很多键值对在Cookie中,

有一个很重要的键值对,用来表示用户身份信息的->尤其有的时候,登入一个网站,后续再去访问这个网站的其他页面,都不必重新登入,并且关闭电脑后,第二天再去访问依旧不需要重新访问。

为了实现身份识别的效果,不仅仅需要Cookie支持服务器这里,也要Session机制来支持。

什么是Session机制呢?(植入看病场景)

首次访问网站,登入之后,相当于用户给你一个就诊卡(身份标识,SessionId)

身份标识就通过服务器返回给浏览器的响应保存在浏览器的Cookie中了(键值对)

与此同时,人家网站服务器这边,也就会创建啊一个对应的Session(电子档案),Session中就会记录一些关键信息,网站服务器一定不止有你一个用户,每个用户都有自己的session,并且sessionId主键(非空不重复)服务器就会使用类似的Hash表这样的方式,以sessionId为key,以Session为Value,把数据组织起来。

后续访问网站的其他页面,都会在请求的Cookie字段中带上sessionId,服务器可以通过sessionId,了解你的用户信息。

Cookie:······buvid=cf85;live-BuVID=AUTO····键值对之间使用;分隔,键与值之间用=分隔。

小总结:

Cookie从哪里来?

从服务器返回给浏览器

Cookie保存在哪里?

保存在浏览器上,浏览器所在电脑的键盘上,每个域名都有自己的一组Cookie

Cookie里面的内容是什么?

Cookie中的内容是键值对结构的数据,这里的键值对都是程序员自定义的,其中有一个键值对,作为用户身份标识。

Cookie里面的内容到哪里去?

后续再访问这个网站的各个页面,都会在请求中带上Cookie,服务器就可以进一步知道客户端的详细情况了。

当然有人获取了我的Cookie里面的sessionid,然后和服务器对话,可能会冒充你的身份(但是还是不会知道你的账号密码,就像是有人拿了你的医保卡,但是并不知道密码)

json是键值对,key和value用:键值对之间用,分隔。

二、响应的回报结果含义

响应对应四行

1.首行

2.响应头

3.空行

4.正文

HTTP/.1.1.  200  ok
HTTP/.1.1.:版本号
200:状态码(这次响应的定性,成功,失败,或者其他情况)
OK:状态码的描述

常常我们用数字来表示结果,不同数字表示不同失败的原因

200 表示获取成功

404😡😡😡小伙伴的网址一个一个都是这么没的

502:服务器挂了

504服务器响应超时

302重定向(服务器会自动跳转到其他的页面)

重定向和下面这个呼叫转移类似

“呼叫转移”手机运营商一个业务“现在很少了,想我之前是182转156,如果有人带电话到182,就自动转到156这个手机号这里

HTTP的重定向:使用浏览器访问www.aaa.com这个url,此时请求发送给对应服务器,结果服务器返回了一个302,同时告诉你,要去访问www.bbb.com,于是浏览器收到这个响应,就会自动跳转到www.bbb.com(当然无视风险,无视防火墙之类的🐷🐷🐷。)

HTTP协议

请求                                                  响应

1.首行(方法,URL版本号)           1.首行(版本号,状态码,状态码描述)

2.header                                           2.header(键值对) 

3.空行                                               3.空行

4.body                                              4.body

三、实际开发中的选择

实际开发中,经常能够手动构造出HTTP请求来

1.html的form表单

2.通过js的ajax.

3.Java代码(其他各种语言的代码)

4.借助一些第三方工具

form表单

<form action=""></form>对于开始标签来说,可以写一些属性(键值对)action属性,描述了构造HTTP请求,URL是什么
比如:
<form action="http://www.sogou.com" method="get">
get:请求的方法(就是那个GET,POST)
<input type="text" name="aaa">        //aaa会作为参数,被放到http请求的QueryString/body //中name属性aaa,就是键值对的键,用户输入框输入的内容就是键值对的值
//input:在html中有多个意思,他是通过type属性来控制的,其中text这个类型,就是一个最简单的单行输入框
//假如搭配的类型是submit也就是变成了发出去这个请求
<input type="submit"   value="提交">(value 的值就是按钮上的文本)
//完整
<form action="https://www.sogou.com" method="get">
<input type="text" name="aaa">
<input type="text" name="bbb">
<input type="text" name="ccc">
<input type="submit" value="提交">
</form>
//这里面的get方法可以换成POST,但是POST没有指向的QueryString

最终的效果就是这样,不管你输入什么,都会自动跳转到搜狗。

GET https:www.sougou

这里的输入框中,你填入的东西,会显示到搜狗的报头URL中

当然现在更经常使用2.ajax构造HTTP

(Asynchronous JAVAscript AND XML,

Asynchronous:是异步的意思,synchronized:同步)

我和小薛约去网吧

我等薛  同步的情况是:我这边时刻看,小薛是否出来了(等待的职责放到了发起者的身上)

              异步的情况是:小学出来,主动来去找我(异步的等待职责放到了被发起者的身上)

ajax就是一种异步的通信方式,通过代码,发出了HTTP请求,请求发出去之后,js代码就继续往下执行,当服务器的响应回来之后,就会自动的通知到咱们的代码中,进一步就能够处理响应了。(ajax是js提供的一组API,js原生的ajax,非常不好用,所以出现了:JQuery这是个js界的一个知名第三方库)

 <script>$.ajax({
//不仅get和post,也支持其他的东西type:'get',
//uel构造http请求的路径url:'https://sogou.com',
//下面这一段contentType:'application/x-www-form-urlencoded',adata:'aaa=111&bbb=222',//可加可不加,服务器返回响应,要如何处理success的值是一个函数,这个函数就会在收到响应的时候被浏览器自动调用这个函数的时候,就会把响应的body,通过参数传过这个函数。//此处所谓的异步:js执行ajax方法的时候,把请求发出去之后,就立即往下执行,这时,还没调用success对方的方法呢,一直响应回来,success才会被调用(这也被叫做回调函数)success:function(body){console.log('ok');}
//js中,{}表示的是js的对象,里面是键值对,键值对之间用,分割,键和值之间用:分割,键固定是string类型,可以写‘’也可以不行,值的话数字,字符串,数组,对象皆可。});</script>

ajax功能更灵活,是否想要有QueryString都可以,如果想要QueryString直接做一个字符串拼接即可或通过body传输,JAVA有一些第三方封装的HTTP的构造。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

mac清理垃圾的软件有哪些?这三款我最推荐

没错&#xff0c;Mac电脑真的好用&#xff0c;但是清理系统垃圾可不是件容易的事。由于Mac系统的封闭性&#xff0c;系统的缓存垃圾常常隐藏得让人发现不了。不过&#xff0c;别担心&#xff01;有一些专业的Mac清理软件可以帮你解决这一系列问题&#xff0c;让清理垃圾变得轻松…

Day-08 基于 Docker安装 Nginx 镜像-负载均衡

1、反向代理后&#xff0c;自然而然就引出了负载均衡,下面简单实现负载均衡的效果; 2、实现该效果需要再添加一个 Nginx &#xff0c;所以要增加一个文件夹。 /home|---mutou|----nginx|----conf.d|----html|----conf.d2|----html3 1.创建 html3 文件夹&#xff0c; 新建 index…

Springcloud支付模块

客户端消费者80 order 微服务提供者8001 payment 订单模块可以调动支付模块 步骤&#xff1a; 1、建moudle 2、改写pom 3、写yml 4、主启类 5、业务类

DevicData-D-XXXXXXXX勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言&#xff1a; 在数字时代&#xff0c;数据安全成为一项至关重要的挑战。DevicData-D-XXXXXXXX勒索病毒&#xff08;以下简称DevicData病毒&#xff09;是这场战斗中的新敌人&#xff0c;它能够以毁灭性的方式加密您的数据&#xff0c;迫使您在数据和时间之间做出艰难的选择…

基于A4988/DRV8825的四路步进电机驱动器

概述 简化板的CNC sheild V3.0&#xff0c;仅保留步进电机速度与方向的控制引脚STEP/DIR、使能端EN、芯片供电VCC\GND&#xff0c;共计11个引脚。PCB四周开设四个M3通孔&#xff0c;以便于安装固定。此外&#xff0c;将板载的焊死的保险丝更改为可更换的保险座保险丝&#xff…

【LLM】主流大模型体验(文心一言 科大讯飞 字节豆包 百川 阿里通义千问 商汤商量)

note 智谱AI体验百度文心一言体验科大讯飞大模型体验字节豆包百川智能大模型阿里通义千问商汤商量简要分析&#xff1a;仅从测试“老婆饼为啥没有老婆”这个问题的结果来看&#xff0c;chatglm分点作答有条理&#xff08;但第三点略有逻辑问题&#xff09;&#xff1b;字节豆包…

理解C++强制类型转换

理解C强制类型转换 文章目录 理解C强制类型转换理解C强制转换运算符1 static_cast1.1. static_cast用于内置数据类型之间的转换1.2 用于指针之间的转换 1.3 用于基类与派生类之间的转换2. const_cast2.1示例12.2 示例2——this指针 3.reinterpret_cast4.dynamic_cast C认为C风格…

假期题目整合

1. 下载解压题目查看即可 典型的猪圈密码只需要照着输入字符解开即可得到答案 2. 冷门类型的密码题型&#xff0c;需要特意去找相应的解题思路&#xff0c;直接百度搜索天干地支解密即可 3. 一眼能出思路他已经给了篱笆墙的提示提示你是栅栏密码对应解密即可 4. 最简单的社会主…

Python常用功能的标准代码

后台运行并保存log 1 2 3 4 5 6 7 8 9 nohup python -u test.py > test.log 2>&1 & #最后的&表示后台运行 #2 输出错误信息到提示符窗口 #1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件 #最后会把日志文件输出到test.log文…

云原生Kubernetes:K8S集群kubectl命令汇总

目录 一、理论 1.概念 2. kubectl 帮助方法 3.kubectl 子命令使用分类 4.使用kubectl 命令的必要环境 5.kubectl 详细命令 一、理论 1.概念 kubectl是一个命令行工具&#xff0c;通过跟 K8S 集群的 API Server 通信&#xff0c;来执行集群的管理工作。 kubectl命令是操…

Vue3项目使用Stimulsoft.Reports.js【项目实战】

Vue3项目使用Stimulsoft.Reports.js【项目实战】 相关阅读&#xff1a;vue-cli使用stimulsoft.reports.js&#xff08;保姆级教程&#xff09;_stimulsoft vue-CSDN博客 前言 在BS的项目中我们时常会用到报表打印、标签打印、单据打印&#xff0c;可是BS的通用打印解决方案又…

❓“想创作音乐,但不会编曲?”FL Studio 21 轻松帮你编曲

❓“想创作音乐&#xff0c;但不会编曲&#xff1f;” ❓“不知道如何将各种音乐元素组合起来&#xff1f;” 5个步骤&#xff0c;轻松编曲&#xff01; 想要成为音乐创作高手&#xff0c;编曲是必不可少的技能。今天为大家带来5个编曲的步骤&#xff0c;让你轻松掌握编曲技巧…

JVM-满老师

JVM 前言程序计数器&#xff0c;栈&#xff0c;虚拟机栈&#xff1a;本地方法栈&#xff1a;堆&#xff0c;方法区&#xff1a;堆内存溢出方法区运行时常量池 垃圾回收垃圾回收算法分代回收 前言 JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class 的文件&#xff…

Spring Cloud OpenFeign 性能优化的4个方法

OpenFeign 是 Spring 官方推出的一种声明式服务调用和负载均衡组件。它的出现就是为了替代已经进入停更维护状态的 Netflix Feign&#xff0c;是目前微服务间请求的常用通讯组件。 1.超时设置 OpenFeign 底层依赖Ribbon 框架&#xff0c;并且使用了 Ribbon 的请求连接超时时间…

基于STM32 ZigBee无线远程火灾报警监控系统物联网温度烟雾

实践制作DIY- GC00168---ZigBee无线远程监控系统 一、功能说明&#xff1a; 基于STM32单片机设计---ZigBee无线远程监控系统 二、功能说明&#xff1a; 1个主机&#xff1a;STM32F103C系列单片机LCD1602显示器蜂鸣器 ZigBee无线模块3个按键&#xff08;设置、加、减&#xff0…

图片批量编辑器,轻松拼接多张图片,创意无限!

你是否曾经遇到这样的问题&#xff1a;需要将多张图片拼接成一张完整的画面&#xff0c;却缺乏专业的图片编辑技能&#xff1f;现在&#xff0c;我们为你带来一款强大的图片批量编辑器——让你轻松实现多张图片拼接&#xff0c;创意无限&#xff01; 这款图片批量编辑器可以帮助…

笔训【day3】

目录 选择题 1、二维数组初始化 2、[]优先级高于* ​编辑 3、for初始化只执行一次​编辑 4、大小端 编程题 1、字符串中找出最长连续数字串 2、数组中出现次数超过一半的数 选择题 1、二维数组初始化 C&#xff1a;多初始化了一行 D&#xff1a;不能中间用两个逗号跳过。…

数据结构与算法-(7)---栈的应用-(4)后缀表达式求值

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

【Java项目推荐之黑马头条】自媒体文章实现异步上下架(使用Kafka中间件实现)

自媒体文章上下架功能完成 需求分析 流程说明 接口定义 说明接口路径/api/v1/news/down_or_up请求方式POST参数DTO响应结果ResponseResult DTO Data public class WmNewsDto {private Integer id;/*** 是否上架 0 下架 1 上架*/private Short enable;}ResponseResult 自媒…

SpringCloud Alibaba - Seata 四种分布式事务解决方案(TCC、Saga)+ 实践部署(下)

目录 一、Seata 分布式解决方案 1.1、TCC 模式 1.1.1、TCC 模式理论 对比 TCC 和 AT 模式的一致性和隔离性 TC 的工作模型 1.2.2、TCC 模式优缺点 1.2.3、TCC 模式注意事项&#xff1a;空回滚 1.2.4、TCC 模式注意事项&#xff1a;业务悬挂 1.2.5、实现 TCC 模式 案例…