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

网络(四)——HTTP协议

文章目录

  • 认识url
  • urlencode和urldecode
  • HTTP协议格式
  • HTTP的方法
  • HTTP的状态码
  • HTTP常见Header

虽然应用层的协议是由人为规定的,但是已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。

认识url

我们经常所说的网址就是url;

在这里插入图片描述

  • http:协议名称
  • www.example.jp代表一个IP地址;80代表端口号。这样就可以定位到一个主机的一个进程上了;在应用层上进行DNS域名解析:
  • /dir/index代表的是你想访问的资源路径
  • 像上述 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现

urlencode和urldecode

如果在搜索关键字当中出现了像 / ? : 这样的字符,由于这些字符已经被URL当作特殊意义理解了,因此URL在呈现时会对这些特殊字符进行转义。

在这里插入图片描述

在线编码工具

HTTP协议格式

请求格式
在这里插入图片描述

  • 首行: [方法] + [url] + [版本]
  • Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
  • Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度;

在这里插入图片描述


响应格式
在这里插入图片描述

  • 首行: [版本号] + [状态码] + [状态码描述]
  • Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
  • Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度; 如果服务器返回了一个html页面, 那么html页面内容就是在body中.

在这里插入图片描述

HTTP的方法

在这里插入图片描述

  • 从服务器上拿下来资源数据——GET

GET方法分为两种,分别是带参数和不带参数的;
带参数的,将数据上传给服务器(参数是url中?后面的字符);
不带参数的,从服务器取出数据;

  • 把客户端的数据上传到服务器进行处理——POST

POST只进行将数据上传给服务器(有参数,但并不在url中),他的参数在HTTP请求报头中的请求正文中;

综上,GET通过url传参,将参数回显在url中;
而POST是通过请求正文传参,相对于GET来说比较私密
但实际上两者都是明传输,都不安全

HTTP的状态码

在这里插入图片描述

最常见的状态码, 比如 200(OK), 404(Not Found), 403(Forbidden), 302(Redirect, 重定向),504(Bad Gateway)

HTTP常见Header

  • Content-Type: 数据类型(text/html等)
  • Content-Length: Body的长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent: 声明用户的操作系统和浏览器版本信息;
  • referer: 当前页面是从哪个页面跳转过来的;
  • location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能

一个网站如果你经常访问或只访问过一次, 当你下一次访问时会自动登录你的账号以及相关信息
这就是Header中的Cookie所完成的。

当我们第一次访问一个网站时,会注册我们的账号信息,这个账号信息是被放在你当前计算机的文件中,称为cookie文件。当你再次打开这个网站后,你cookie文件中保存的用户相关的信息,比如你曾经输入的账号密码就会被放在HTTP的header中的cookie字段中一起发送给服务器,服务器直接让你使用。

首先,我们知道HTTP协议是一种无状态协议,HTTP的每次请求/响应之间是没有任何关系的,如果没有cookie的存在,那么每当我们要进行页面请求时都需要重新输入账号和密码进行认证
当我们第一次进入某个网页,我们输入账号和密码,如果服务器判定你是一个合法的用户,为了后续进行某些网页请求时不用重新输入账号和密码,此时服务器就会进行Set-Cookie的设置,当认证通过并在服务端进行Set-Cookie设置后,服务器在对浏览器进行HTTP响应时就会将这个Set-Cookie响应给浏览器。而浏览器收到响应后会自动提取出Set-Cookie的值,将其保存在浏览器的cookie文件当中

http://www.lryc.cn/news/439692.html

相关文章:

  • comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决
  • 测试-Gatling 与性能测试
  • ESRGAN——老旧照片、视频帧的修复和增强,提高图像的分辨率
  • 跨界融合:EasyDSS+无人机视频直播推流技术助力行业多场景应用
  • Linux实操笔记2 Ubuntu安装Nginx的不同方法
  • QCustomPlot笔记(一)
  • 【机器学习】多模态AI——融合多种数据源的智能系统
  • QT学习与数据库连接
  • 泛读笔记:从Word2Vec到BERT
  • redis实现分布式锁详细教程,可续锁(看门狗)、可重入
  • 代码随想录打卡Day32
  • 数学学习记录
  • R语言统计分析——散点图1(常规图)
  • 蓝桥杯—STM32G431RBT6按键的多方式使用(包含软件消抖方法精讲)从原理层面到实际应用(一)
  • 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
  • Linux - iptables防火墙
  • 【C语言零基础入门篇 - 3】:格式化输入输出、字符操作和sizeof运算符揭秘
  • JVM字节码与局部变量表
  • Java许可政策再变,Oracle JDK 17 免费期将结束!
  • 网页交互模拟:模拟用户输入、点击、选择、滚动等交互操作
  • C sharp 学习 笔记
  • 文章资讯职场话题网站源码整站资源自带2000+数据
  • c++ templates常用函数
  • 【重学 MySQL】三十一、字符串函数
  • 828华为云征文 | 使用Flexus云服务器X实例部署GLPI资产管理系统
  • 深入理解Go语言的面向对象编程、Git与GitHub的使用
  • redis底层—通信协议RESP
  • JVM 调优篇6 可视化性能监控工具-JVisual VM
  • C#学习笔记(三)Visual Studio安装与使用
  • element-plus的菜单组件el-menu