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

news2024/11/20 10:44:51

目录

一、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.coloradmin.cn/o/1064442.html

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

相关文章

【LinuxC】时间、时区,相关命令、函数

文章目录 一、序1.1 时间和时区1.11 时间1.12 时区 1.2 查看时间时区的命令1.21 Windows1.22 Linux 二、C语言函数2.1 通用2.11 函数简介2.12 数据类型简介 2.2 windows 和 Linux特有函数2.3 C语言示例 一、序 1.1 时间和时区 1.11 时间 时间是一种用来描述物体运动变化的量…

怎么把家里闲置旧苹果手机变成家用安防监控摄像头

环境 监控端&#xff1a;苹果5s iOS10.2.1 观看端&#xff1a;苹果11Pro 网络情况&#xff1a;同一个局域网 问题描述 怎么把家里闲置旧苹果手机变成家用安防监控摄像头 解决方案 1.旧苹果5s手机在App Store下载采集端软件 打开app 授权联网、相机、麦克风等权限&#xf…

用VLD调查VC内存泄漏

一、发现内存泄漏 使用VS2022&#xff0c;发现提示有内存泄漏&#xff0c;检查了所有的new&#xff0c;确认都有相应的delete释放。 Detected memory leaks! Dumping objects -> {1914} normal block at 0x0000021FDFFBD2E0, 48 bytes long.Data: < >…

OpenResty安装-(基于Nginx的高性能Web平台,可在Nginx端编码业务)

文章目录 安装OpenResty1.安装1&#xff09;安装开发库2&#xff09;安装OpenResty仓库3&#xff09;安装OpenResty4&#xff09;安装opm工具5&#xff09;目录结构6&#xff09;配置nginx的环境变量 2.启动和运行3.备注 安装OpenResty 1.安装 首先你的Linux虚拟机必须联网 …

【网络安全 --- 工具安装】Centos 7 详细安装过程及xshell,FTP等工具的安装(提供资源)

VMware虚拟机的安装教程如下&#xff0c;如没有安装&#xff0c;可以参考这篇博客安装&#xff08;提供资源&#xff09; 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程&am…

高数:第三章:一元函数积分学

文章目录 一、不定积分(一)两个基本概念&#xff1a;原函数、不定积分(二)原函数的存在性&#xff1a;原函数存在定理(三)不定积分的性质(四)基本积分公式(五)三种主要积分法1.凑微分 (第一类换元法)2.换元法 (第二类换元法)①三角代换②根式代换③倒代换 3.分部积分法4.其他技…

工厂管理软件中的PLM管理

第一部分&#xff1a;介绍PLM管理的定义和背景 1.1 定义&#xff1a;PLM管理是指通过工厂管理软件实现对产品生命周期各个阶段的全面管理和协同合作&#xff0c;包括产品设计、工艺规划、生产制造、质量控制、供应链管理等环节。 1.2 背景&#xff1a;随着市场竞争的加剧和消…

希尔排序:优化插入排序的精妙算法

排序算法在计算机科学中扮演着重要的角色&#xff0c;其中希尔排序&#xff08;Shell Sort&#xff09;是一种经典的排序算法。本文将带您深入了解希尔排序&#xff0c;包括其工作原理、性能分析以及如何使用 Java 进行实现。 什么是希尔排序&#xff1f; 希尔排序&#xff0c…

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

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

【Java 进阶篇】深入了解JDBCTemplate:简化Java数据库操作

数据库操作是几乎所有现代应用程序的一部分。从存储和检索数据到管理业务逻辑&#xff0c;数据库操作是不可或缺的。在Java应用程序中&#xff0c;JDBCTemplate是一种强大的工具&#xff0c;可帮助开发人员轻松进行数据库操作。本文将深入探讨JDBCTemplate&#xff0c;了解它的…

【MySQL】基本查询 (一)

文章目录 一. 基础查询二. where条件子句三. NULL的比较结束语 操作如下表 //创建表结构 mysql> create table exam_result(-> id int unsigned primary key auto_increment,-> name varchar(20) not null comment 同学姓名,-> chinese float default 0.0 comment…

怒刷LeetCode的第24天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;反向遍历 方法二&#xff1a;字符串操作函数 方法三&#xff1a;正则表达式 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;模拟 方法二&#xff1a;递归 方法三&#xff1a;迭代 方法四&…

VS Code更改软件的语言

刚刚安装好的 vscode 默认是英文&#xff0c;可以安装中文扩展包。如图&#xff1a; 重启即可更换为中文。 如果想切换为英文&#xff0c;可以 Ctrl Shift P&#xff0c;打开命令面板。 输入 Configure DIsplay Language&#xff0c;如图&#xff1a; 可以在中英文之间切换…

【C语言】什么是宏定义?(#define详解)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 ​ 目录 一.什么是宏定义 二.宏定义的组成 第1部分 第2部分 第3部分 三.宏定义的应用 &#x1f38f;类对象宏 &#x1f38f;类函数宏 1.求两个数中的较大值 2.求一个数的…

【短文】在Linux中怎么查看文件信息

2023年10月6日&#xff0c;周五晚上 ls -l filename 通过这条命令可以简略地查看文件信息 stat filename 通过这条命令可以详细地查看文件信息

NFS 原理和配置

NFS 原理介绍 NFS network file system 网络文件系统 基于RPC协议&#xff0c;RPC remote procedure call 。 RPC存在的意义在于解决NFS服务端和客户端通信多端口并且端口不固定的问题。因为NFS的服务端和客户端通信的时候&#xff0c;并不是只有一个端口&#xff…

【云计算网络安全】DDoS 缓解解析:DDoS 攻击缓解策略、选择最佳提供商和关键考虑因素

文章目录 一、前言二、什么是 DDoS 缓解三、DDoS 缓解阶段四、如何选择 DDoS 缓解提供商4.1 网络容量4.2 处理能力4.3 可扩展性4.4 灵活性4.5 可靠性4.6 其他考虑因素4.6.1 定价4.6.2 所专注的方向 文末送书《数据要素安全流通》本书编撰背景本书亮点本书主要内容 一、前言 云…

电脑提示MSVCP100.dll丢失错误怎么解决?分享四个解决方法帮你搞定

在平时我们使用电脑中&#xff0c;经常会遇到各种问题&#xff0c;比如msvcp100.dll文件丢失&#xff0c;那这个msvcp100.dll文件丢失需要怎么修复解决呢&#xff1f;和msvcp100.dll为什么会丢失呢&#xff0c;下面我一点点为大家解答与介绍解决msvcp100.dll丢失问题的方法。 一…

什么,这年头还有人不知道404

写在前面 哥&#xff0c;来帮我看看&#xff0c;这个请求怎么404了&#xff0c;明明接口路径是对的啊&#xff01;一个下午&#xff0c;组里的小哥突然让我帮忙看这个问题&#xff0c;我不禁一惊&#xff0c;啥&#xff0c;这年头了还有人搞不定404&#xff0c;如有还有&#…

【二】spring boot-设计思想

spring boot-设计思想 简介&#xff1a;现在越来越多的人开始分析spring boot源码&#xff0c;拿到项目之后就有点无从下手了&#xff0c;这里介绍一下springboot源码的项目结构 一、项目结构 从上图可以看到&#xff0c;源码分为两个模块&#xff1a; spring-boot-project&a…