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

应用层协议HTTP介绍

一、HTTP协议介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本。

超文本:视频,音频,图片...

HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。

二、URL

就是我们平时说的网址。

我们会发现好像https协议里面没有端口号,真是这样的话就不能找到一个唯一的资源。

其实协议名称和端口号是强相关的,当浏览器发起请求时会自动拼接端口号80,也就是https对应80号端口,所以端口号被默认忽略。

注意:

URL里面有自己的特殊字符,://#=&,若用户访问资源时URL里面要拼接这些字符就会对URL产生干扰,所以要对特殊字符进程编码(urlencode:% + 特殊字符ASCII码的16进制)

三、HTTP协议请求格式

请求方法:GET,POST,HEAD,DELETE...

URI:要访问的资源路径,不区分URL

HTTP版本:http/1.0   http/1.1   http/2.0   ...

四、HTTP协议应答格式

应答正文一定有资源路径。

五、HTTP请求方法

1、GET

一般用来获取静态资源,也可以通过 url 向服务器发送参数。

如上图,?字符之后就是参数,username 是 .sgrh,还有一个参数 password 是 190420

2、POST

通过 http 请求正文发送参数

3、GET vs POST

(1)url 传递参数大小不大

(2)POST 比 GET 传参更私密,但两者都不安全,要对正文加密才安全。

4、如何实现请求方法

前端网页必须要有 form 表单,默认 method 是 GET

若 method 是 GET,用户名密码写入请求的 url 中。

若 method 是 POST,用户名密码写入请求的正文中。

action 是一种服务,一个写好的业务。

这里的 /s 就是百度的一个业务 search,参数有 wd=hello,是搜索关键字 hello

六、HTTP常见请求报头

Content-Type: 数据类型(text/html 等)

Content-Length: 正文的长度。

Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上。

User-Agent: 声明用户的操作系统和浏览器版本信息。

referer: 当前页面是从哪个页面跳转过来的。

Location: 搭配 3xx 状态码使用, 告诉客户端接下来要去哪里访问。

Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的。

connection报头

HTTP 中的 Connection 字段是 HTTP 报文头的一部分,它主要用于控制和管理客户 端与服务器之间的连接状态

核心作用

管理持久连接:Connection 字段还用于管理持久连接(也称为长连接)。持久连接允许客户端和服务器在请求/响应完成后不立即关闭 TCP 连接,以便在同一个连接 上发送多个请求和接收多个响应。

HTTP/1.1:在 HTTP/1.1 协议中,默认使用持久连接。当客户端和服务器都不明 确指定关闭连接时,连接将保持打开状态,以便后续的请求和响应可以复用同一个连 接。  

HTTP/1.0:在 HTTP/1.0 协议中,默认连接是非持久的。如果希望在 HTTP/1.0 上实现持久连接,需要在请求头中显式设置 Connection: keep-alive。

语法格式

Connection: keep-alive:表示希望保持连接以复用 TCP 连接。

Connection: close:表示请求/响应完成后,应该关闭 TCP 连接。

Cookie 报头

用于在客户端存储少量信息,用于会话功能,方便随时验证用户身份。

例如,一开始你访问爱奇艺网站,你要先登录,如果你不是会员,你就要看广告,当你去看下一集时网站在此建立请求,如果没有 cookie 保存用户信息,你又要登录。

所以客户端发给服务器请求时会带上 cookie 信息,告诉服务器用户身份。

七、HTTP状态码和状态码描述

1、介绍状态码

状态码含义举例
100Continue我接受了你的请求,请你继续。上传大文件时,服务器告诉客户端可以 继续上传
200OK请求处理完成,过程一切正确
201Created创建成功(文件,文章...)
204No Content删除成功(文件,文章...)
301Moved Permanently网站换域名后,自动跳转到新域名;搜 索引擎更新网站链接时使用
302Found用户登录成功后,重定向到用户首页
304Not Modified浏览器缓存机制,对未修改的资源返回 304 状态
400Bad Request填写表单时,格式不正确导致提交失败
401Unauthorized访问需要登录的页面时,未登录或认证 失败
403Forbidden尝试访问你没有权限查看的页面
404Not Found访问页面不存在
500Internal Server Error服务器崩溃或数据库错误导致页面无法 加载
502Bad Gateway使用代理服务器时,代理服务器无法从 上游服务器获取有效响应
503Service Unavailable服务器维护或过载,暂时无法处理请求

2、理解重定向

3、永久重定向 vs 临时重定向

(1)永久重定向

当服务器发生更改,老客户访问时会被添加包含新服务器 url 的 Location 请求报头,浏览器自动重定向。一般用于网站更换域名之后自动跳转到新域名,给搜索引擎更新连接使用(新替换旧)

(2)临时重定向

也会添加 Location 报头,但是不会缓存重定向,一般用于临时从一个页面跳转到另一个页面。


http://www.kler.cn/a/306078.html

相关文章:

  • c++ [spdlog 配置与使用]
  • 单片机:实现数码管动态显示(0~99999999)74hc138驱动(附带源码)
  • LabVIEW中什么和C 语言指针类似?
  • Linux -- 线程的优点、pthread 线程库
  • 定位方式:css
  • 怎么实现柔性动态自适应IVR功能
  • 【自主搭建博客网站 第一篇章】前情提要
  • ??Ansible——ad-hoc
  • 修改 HTTP 和 HTTPS 代理设置为 `http://127.0.0.1:8118
  • 【Android Studio】API 29(即Android 10)或更高版本,在程序启动时检查相机权限,并在未获取该权限时请求它
  • AI学习指南深度学习篇-Adam的基本原理
  • 计算机三级 - 数据库技术 - 第十三章 大规模数据库架构 笔记
  • 速通LLaMA1:《LLaMA: Open and Efficient Foundation Language Models》全文解读
  • ARM驱动学习之9注册字符类设备
  • Robot Operating System——带有时间戳和坐标系信息的线速度和角速度
  • 51单片机+proteus+(DS1302+DS18B20)
  • css选择器有几种?选择器的优先级是怎样的?
  • [网络][CISCO]Cisco-PIX配置详解
  • Leetcode 3290. Maximum Multiplication Score
  • 通过C# 裁剪PDF页面
  • python+adb
  • IP池对数据爬取工作的帮助
  • 【Android Studio】使用雷电模拟器调试
  • Acrobat XI 安装教程
  • 后端入门 (JQuery基础) 01
  • 3.1 通信协议