【网络编程】http协议

预备知识

什么是http协议

HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个应用层的协议,用于在网络中传输超文本(如HTML文档)。HTTP协议建立在TCP/IP协议之上,是Web浏览器和Web服务器之间的主要通信协议。

URL介绍

URL(Uniform Resource Locator,统一资源定位符)是用于指定互联网上的资源地址的一种表示方法。它提供了访问互联网资源的路径和定位方式,使得人们可以通过浏览器或其他工具轻松访问这些资源。
URL的组成通常包括以下几个部分(用冒号分隔):
在这里插入图片描述
只有协议和域名(ip地址)是必须的,其余都是可选的
在这里插入图片描述
当提交或者获取的数据本身可能包含与url中特殊的字符冲突的字符,要求BS(Browser-Server)双方要进行编码和解码。将字符转为16进制,从右向左取4位,每两位做1为,前面加上%。
在这里插入图片描述

HTTP请求和响应

http request格式

在这里插入图片描述
在这里插入图片描述

http response格式

在这里插入图片描述

http的方法

在这里插入图片描述

get方法

GET 方法用于从指定的资源请求数据。它通常用于从服务器获取(或查询)某些信息。当使用 GET 方法时,请求的数据会附加到URL的查询部分(即URL的“?”后面的部分)

数据附加在URL中,因此长度有限制(浏览器和服务器都有URL长度的限制)。
GET 请求可以被缓存。
GET 请求可以保存在书签中。
GET 请求可以被浏览器收藏为搜索历史。
GET 请求通常用于从服务器获取数据,而不是发送数据到服务器。
GET 请求是幂等的,意味着多次相同的请求将返回相同的结果(除非资源本身发生变化)。
GET 请求的数据会暴露在URL中,因此不应包含敏感信息。

post方法

POST 方法用于向指定的资源提交数据,请求服务器进行处理(例如,提交表单或上传文件)。POST 请求将数据包含在请求体中,而不是附加到URL上。

请求的数据包含在请求体中,因此没有长度限制(但仍然受到服务器或客户端配置的限制)。
POST 请求不会被缓存。
POST 请求不会被保存在书签或搜索历史中。
POST 请求通常用于发送数据到服务器,而不是从服务器获取数据。
POST 请求不是幂等的,因为每次相同的请求都可能导致服务器上资源的状态发生变化。
POST 请求的数据不会暴露在URL中,因此适合包含敏感信息

表单

详见html教程
在这里插入图片描述
action表示把表单中的数据提交给谁
method表示表单以什么方式提交,一般是get或post

http状态码

在这里插入图片描述

临时重定向和永久重定向

1.临时重定向表示资源暂时被移动到了一个新的URL,但仍有可能返回原始URL。搜索引擎会继续抓取和索引原始URL,因为它们认为这是临时的变动。
常见的HTTP状态码为302(Found),意味着请求的资源现在临时从不同的URI响应请求。由于状态是临时的,客户端应当继续向原有地址发送以后的请求。
临时重定向的应用场景包括网站维护等需要暂时更改资源位置的情况。
2.永久重定向表示资源已经永久地移动到了一个新的URL。搜索引擎会更新它们的索引,将原始URL替换为新的URL。常见的HTTP状态码为301(Moved Permanently),意味着被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的URI。永久重定向对于SEO(搜索引擎优化)非常重要,因为它可以保留原始页面的权重和排名。同时,当多个域名需要指向同一网站时,也可以通过301永久重定向实现。对于客户端(如浏览器)来说,一旦执行了永久重定向,以后再次访问原始URL时,浏览器会直接访问重定向后的URL,而无需再次进行重定向。

http常见报头

在这里插入图片描述

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

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

相关文章

Map集合的实现类~HashMap

存储结构:哈希表 键重复依据是hashCode和equals方法(键不能重复) 添加: 先创建Student类,那么往HashSet添加的就是Student对象作为键值,后面的作为值 删除: 判断: 遍历&#xff1a…

为什么要梯度累积

文章目录 梯度累积什么是梯度累积如何理解理解梯度累积梯度累积的工作原理 梯度累积的数学原理梯度累积过程如何实现梯度累积 梯度累积的可视化 梯度累积 什么是梯度累积 随着深度学习模型变得越来越复杂,模型的训练通常需要更多的计算资源,特别是在训…

self-attention 的 CUDA 实现及优化 (上)

self-attention 的 CUDA 实现及优化 (上) 导 读 self-attention 是 Transformer 中最关键、最复杂的部分,也是 Transformer 优化的核心环节。理解 self-attention ,对于深入理解 Transformer 具有关键作用,本篇主要就围绕 self-attention 展…

java+jsp+Oracle+Tomcat 记账管理系统论文(完整版)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…

ThingsBoard版本控制配合Gitee实现版本控制

1、概述 2、架构 3、导出设置 4、仓库 5、同步策略 6、扩展 7、案例 7.1、首先需要在Giitee上创建对应同步到仓库地址 ​7.2、giit仓库只能在租户层面进行配置 7.3、 配置完成后:检查访问权限。显示已成功验证仓库访问!表示配置成功 7.4、添加设…

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

Hi3516标准系统入门(命令行方式) 注意: 从3.2版本起,标准系统不再针对Hi3516DV300进行适配验证,建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作,则可能会…

【Linux】文件内容相关的命令,补充:管道符

1、查看文件内容 (1-1)查看文件内容:cat,tac,head,tail 查看文件内容cat 文件名查看文件内容并显示行号cat -n 文件名倒着查看文件内容(从最后一行开始)tac 文件名查看文件前10行…

力扣hot100:543. 二叉树的直径/108. 将有序数组转换为二叉搜索树

一、543. 二叉树的直径 LeetCode:543. 二叉树的直径 二叉树的直径 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。 遇到二叉树的问题很容易去直接用求解的目标去定义递归函数。但是仔细考虑,返回树的直径并不能向上传播。因此我们可以拆…

SolidWorks进行热力学有限元分析二、模型装配

1.先打开软件,新建装配体 2.选中你要装配的零件,直接导入就行 3.鼠标点击左键直接先放进去 4.开始装配,点配合 5.选择你要接触的两个面,鼠标右键确定,然后把剩下的面对齐一下就行了 6.搞定

学习《现代密码学——基于安全多方计算协议的研究》 第一章

目录 前言 第1章 绪论 1.1 密码学的发展历史 1.2 现代密码学体制 1.3 现代密码学与安全多方计算 前言 近几年来,云计算、物联网、移动互联网等新概念、新技术被先后提出,促使信息技术飞速发展。同时,人类生活、沟通方式也随着新技术的普及…

泰克MDO3024示波器如何调整衰减倍数?

泰克MDO3024示波器是一款高性能的数字示波器,具备多种功能和调节选项,可以满足各种测试需求。其中一个重要的调节选项就是调整衰减倍数,通过调整衰减倍数,可以改变示波器的灵敏度和测量范围,帮助我们更好地观察和分析信…

奇诡 matlab 小 bug matlab git需要记录的改动太多

似乎是我有一次添加了太多的路径之后的事情。但是不敢说一定是这个导致的: 症状:只要对文本进行任何编辑操作,工作区就会出现"Processing … Cancel"的提示,如果不管的话这个提示不会消失,同时matlab变得越来…

【进程终止】退出信号 | 三种退出情况 | 如何进程终止returnexit_exit

目录 退出码 退出信号 进程终止情况3 如何进程终止 return退出 库函数exit 系统调用函数_exit ​exit和_exit的区别缓冲区 exit _exit 退出码 回顾上篇 代码跑完,结果正确(退出码为0)代码跑完,结果不正确(退…

springboot项目组合定时器schedule注解实现定时任务

springboot项目组合定时器schedule注解实现定时任务! 创建好springboot项目后,需要在启动类上增加注解开启定时器任务 下图所示: 增加这个注解,启动项目, package com.example.scheduledemo.util;import org.springf…

Linux进程通信-信号

信号概念 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号 可以导致一个正在运行的进程被另一个正在运行的异…

企业怎样进行IT外包以及IT外包服务内容

在数字化时代的浪潮中,企业逐渐认识到信息技术的关键作用,特别是制造业基地对于IT外包和运维服务的需求持续增长。然而,在诸多可供选择的IT外包和运维方案中,企业如何推动与IT外包公司的合作?本文将深入介绍IT外包方案…

nginx 启动,查看,停止

nginx 启动,查看,停止 启动 start nginx 查看是否启动成功 tasklist | findstr nginx 停止 nginx -s stop 测试配置文件的语法是否有误 nginx -t 重启nginx nginx-s reload

网络安全之动态路由OSPF基础

OSPF:开放式最短路径优先协议。 1、协议使用范围:IGP。 2、协议算法特点:链路状态型路由协议。 3、协议是否传递网络掩码:传递网络掩码(无类别的路由协议)。 4、协议封装:基于IP协议封装&am…

第六代移动通信介绍、无线网络类型、白皮书

关于6G 即第六代移动通信的介绍, 图解通信原理与案例分析-30:6G-天地互联、陆海空一体、全空间覆盖的超宽带移动通信系统_6g原理-CSDN博客文章浏览阅读1.7w次,点赞34次,收藏165次。6G 即第六代移动通信,6G 将在5G 的基…

《QT实用小工具·六十》Qt 多列时间轴控件

1、概述 源码放在文章末尾 Qt 多列时间轴控件。 可与多段字符串格式自由转换,也可手动添加列表项。 专门用来以时间轴作为事件线发展顺序的故事大纲。 特点 时间背包功能:记录所有物品或属性发生的变化,随时回溯 时间可输入任意内容&…