当前位置: 首页 > news >正文

HTTP初识(二)

HTTP

在上一章已经初次认识了HTTP,接下来介绍更深层次的内容,探究HTTP的秘密

方法

先从HTTP请求的首行Method来讲,常用的方法有GET、POST、PUT、DELETE…

方法说明
GET获取资源
POST传输实体主体
PUT传输文件
DELETE删除文件
TRACE追踪路径

虽然分了很多的方法,但大多数都是用到的GET与POST方法,且各个方法之间的运用界限也没有那么的清,GET有时候也能做POST的事情,POST也能干GET的事情

那既然GET和POST的界限不是很清,但它们有没有很大的区别呢?

  • 回答是没有本质的区别,只是在使用习惯上有一定的区别
  • GET通常用来表示“获取数据”的语义,POST表示“提交数据”的语义
  • GET通常把服务器传输的数据放到query string中,而POST一般放到body中

🤔另外,基于GET和POST在网络上的讨论包括但不限于

  1. GET请求一般是实现成“幂等”,POST请求则没有“幂等”的要求——“幂等”是请求出现重复的时候,结果是明确的 / 一致的,否之则“不幂等”

    幂等场景:第一次问1+1 = ?,回答是2。那第二次问它的结果就是明确的,是2

    不幂等场景:以打开b站为例,请求相同,都是刷新网页,但是看到的内容都不一样的,这是大模型在给你做个性化推荐,必然不幂等

    这话来源于HTTP RFC标准文档,建议程序员这么做,但实际上,程序员并没有很遵守这套规则

  2. ❌ GET请求不安全,POST请求安全,因为GET把数据放query string里,POST则放到了body中

    这个结论是错误的。安不安全是针对数据有没有加密来说的,POST即使放到了body中,用抓包工具一抓也能看到,这种掩耳盗铃的说法站不住脚跟

  3. ❌ GET单次请求传输的数据量小,POST大

    这个言论并不准确。这是以前非常久的说法,受限于久远的IE浏览器来说是这样的,但现在URL的长度也可以很长

  4. ❌针对GET请求只能传输文本数据,POST可以传输文本和二进制数据

    这个言论并不准确。对于GET来说,二进制数据可以通过urlencode / base64来进行转码成文本的数据,再通过GET的URL来传输,所以GET实际上也可以传输二进制的数据(URL中确实不能放二进制数据)

网络上充斥着杂乱的信息,所以我们需要怀有求真的精神来学习 ᕙ(`▿´)ᕗ~

在实际开发中,这几个常见方法可以一起搭配使用,规范化以Restful风格来编写更有效率

Host

通过抓包其中一个HTTP请求来看,在请求报头第一行有Host
在这里插入图片描述

Host表示了服务器的地址和端口

Content-Length

表示了body中的数据长度,单位是字节

在这里插入图片描述

Content-Type

表示了请求的body的解码格式

在这里插入图片描述

常见的数据格式有

  1. text/html
  2. text/css
  3. application/json
  4. application/javascript
  5. image/gif
  6. image/jpg
  7. image/png
  8. text/plain

在网页前端开发中

  • html 负责网页结构 (骨)
  • css 负责网页的样式 (皮)
  • json 负责网页的交互逻辑 (灵魂)

在Content-Type中,告诉了浏览器body的数据格式,浏览器会根据不同的数据格式来解析,来渲染网页

User-Agent

用来告诉浏览器的所在的用户的设备、操作系统、浏览器版本号…

在这里插入图片描述

浏览器通过UA来区分用户是PC端or手机端,以此来渲染不同尺寸的页面,所以以前的前端程序员需要写两套代码来适配不同的人群

除此之外,根据UA的不同,程序员来写不同的代码以此适配不同的浏览器版本

随着技术发展,还有别的方案来代替写两套代码的情况——“响应式编程”(基于css3),工作原理是根据用户端屏幕的尺寸,自动进行不同的排版,效率更高,且不需要写两套代码

Referer

是记录从哪个页面跳转过来的

注意:这个Referer是面向服务器的,与浏览器的“前进” / “后退”不一样,后者是浏览器记录的,前者是发给服务器的

在这里插入图片描述

Referer的作用一般有收集数据来源 / 溯源 / 统计 的作用,是重要的数据

Cookie

我们一般在新下载一个浏览器的时候都会弹出“接受Cookie”的选项,那什么是Cookie呢?

Cookie是浏览器给网页提供的向本地存储数据的机制,但这个存储权限是有限的,且经过浏览器的安全操作再写入到本地硬盘中

类似的机制还有Local Storage,IndexDB(浏览器通过类似SQL语句方式来操作表)

在HTTP请求抓包中可以看到,Cookie保存的也是一系列的键值对,键值之间用 = 分开,键值对之间用 ;分开
在这里插入图片描述

网页本身是不允许向本地存储 / 修改数据的,因为这种操作很危险。那为什么会允许写入本地存储数据呢?接着看下去

Cookie用途

当用户首次访问网页时,服务器会为该客户端创建一个会话,并通过 Cookie 中的一系列键值对来标识该会话。这些键值对会组成字符串,由浏览器存储在本地。

由于服务器会维护多个会话,不同用户对应着不同会话。所以用户通过SessionId都能找到,至于Session对象(对象里存什么,是程序员之间决定的)


当本地用户存储了一系列的Cookie后,如果后续再访问同一个网页,HTTP请求首先会把Cookie发给服务器,此时服务器维护了一个类似HashMap的一个表,里面存储了<会话ID>与<会话对象>的一系列键值对

当客户端发来的Cookie,服务器检查后有与之对应的<SessionId-Session对象>的时候,服务器就会直接返回对应的信息,例如登录信息、用户权限、配置等其他功能,避免了重复访问请求的情况出现
在这里插入图片描述

状态码

响应的状态码在HTTP响应的首行中

最常见的就是200 请求成功,2xx开头的都可以视为成功,只是成功的内容有不一样

在这里插入图片描述

404 Not Found 意思是访问的资源在服务器上不存在,一般是客户端填写的URL有问题,服务器找不到

在这里插入图片描述

403 Forbidden 拒绝访问,说明访问的页面无权限,以码云的403举栗
在这里插入图片描述

4xx 都属于是“客户端错误”

除此之外还有

500 Internal Server Error 服务器出错——服务器挂了 / 服务器非常繁忙 5xx都属于“服务器错误”

302 Move temporarily 临时重定向——belike手机号的呼叫转移,当你呼叫手机号码1的时候,运营商会自动转接到手机号码2

客户端想要请求URL1的时候,服务器会告诉客户端你去访问URL2就能得到你想要的东西了!!然后客户端就去访问URL2了~~
在这里插入图片描述

有临时重定向,那就会有永久重定向

301 redirect 永久重定向——即URL2的地址永远不会变,不过一般永久重定向的问题,浏览器可以做缓存,也没有必要再访问服务器重定向,这样效率更高,所以301很少出现

总结一下状态码

状态码类别小幽默(以服务器的视角)
1xx请求正在处理别急,我有我自己的节奏
2xx成功Here you go ~
3xx重定向Go away !
4xx客户端错误You fucked up
5xx服务器错误I fucked up

‍以下就是对HTTP更进一步的学习 我将持续更新

希望对看到这里的你有所帮助,祝愿身体健康~(∠・ω< )⌒★

http://www.dtcms.com/a/478118.html

相关文章:

  • 【10 分钟!M4 Mac mini 离线部署「私有 ChatGPT」完整实录】
  • 怎么给网站做动图网络营销中的四种方法
  • API测试 | 3步走,通过协作实现API的高质量交付
  • 消息鉴别码的种类
  • C++设计模式之行为型模式:策略模式(Strategy)
  • 接口安全测试实战:从数据库错误泄露看如何构建安全防线
  • h5游戏网站建设做网站被网警找
  • 微美全息(NASDAQ:WIMI)融合区块链+AI+IoT 三大技术,解锁物联网入侵检测新范式
  • Shiro_认证绕过漏洞复现:原理详解+环境搭建+渗透实践(CVE-2020-1957)
  • 三维实时渲染应用开发及场景设计
  • RK3588 + 银河麒麟部署 swarm 集群指南
  • 基于 PyTorch 实现 MNIST 手写数字识别
  • 网站建设找王科杰信誉wordpress企业产品列表
  • 深入 Spring 依赖注入底层原理
  • WebRTC技术如何实现音视频通话
  • 韩国免费行情网站的推荐理由门户网站建设工作会议
  • Python psycopg2 教程
  • 5CEBA2U15I7N 阿尔特拉 Altera Cyclone V FPGA
  • 辉县市工程建设网站建设网站做宣传的免费渠道有那种
  • 2025年10月13日总结
  • perl-Test-Simple-1.302195-5.fc39.noarch.rpm 怎么安装?Fedora 39 安装步骤讲解
  • 图像处理之浓度(AI 调研)
  • 问答网站建设怎么提问郑州网站建设网络推广
  • T:堆的基本介绍
  • Spide - Personal Blog Magazine WordPress Theme Download
  • 使用江科大串口发送函数发送freertos的vTaskList出现跑飞
  • 关于做书的网站中国人做跨电商有什么网站
  • asp网站上传到服务器上之后一打开就是download嘟嘟嘟在线观看播放免费
  • 网站域名审核时间兰州做网站一咨询兰州做网站公司
  • Transformer实战(22)——使用FLAIR进行语义相似性评估