了解http协议

news2025/1/8 5:26:43

http的相关概念

  • 互联网:是网络的网络,是所有类型网络的母集

  • 因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。

  • 万维网:数据库

  • URL:万维网使用统一资源定位符。描述了一个资源在服务器上的具体的位置,http软件默认的根的位置在 /var/www/html

  • HTTP:超文本传输协议(通过这个协议可以传输图片,视频,小程序)

                  apach,nginx,tomcat是用HTTP传输协议

  • HTML:它描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。

HTTP请求访问的完整过程

  1. 建立连接

  2. 接收请求

  3. 处理请求

  4. 访问资源

  5. 构建响应报文

  6. 发送响应报文

  7. 记录日志

1.建立连接

三次握手

2.接收请求

接收客户端请求报文中对某资源的一次请求的过程

3.处理请求

对应到配置文件处理请求

常用的请求:GET(下载),POST(上传),HEAD(测试信息),PUT(上传),DELETE,TRACE,OPTIONS

4.访问资源

服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源

静态资源:不需要服务器二次加工处理,直接将文件交给客户端

                  txt,jpg,视频

动态资源:需要服务器二层加工处理后,将加工后的结果传给客户端

                 php,java,python

我们的web软件(apache,nginx)不太擅长处理动态资源

5.构建响应报文

方法含义
GET获取资源
HEAD获取报文首部
POST传输实体主体(比如传输 用户名密码)
PUT上传文件
PATCH对资源进行部分修改
DELETE删除文件
OPTIONS查询支持的方法(查看服务端可以支持哪些方法)
CONNECT要求在与代理服务器通信时建立隧道(类似加密)
TRACE追踪路径

6.发送响应报文

7.记录日志

最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务

HTTP工作机制

事务:操作的集合

一次http事务包括:

http请求

http响应

提高HTTP连接性能:

  • 并行连接:同时最多下4个资源,一次三次握手

  • 持久连接(长连接):一次三次握手,下载多个资源

  • 管道化连接:通过共享TCP连接,发起并发的HTTP请求

  • 复用的连接:交替传送请求和响应报文(实验阶段

持久连接(长连接)如何断开:

1.到时间了自动断开

2.规定下载的个数,完成后就断开

http的文件夹的位置

主进程:/usr/sbin/httpd

主配置文件: /etc/httpd

主配置文件:/etc/httpd/conf/httpd.conf

日志文件:/bat/log/httpd/access.log 成功的日志 error_log 错误的日志

主站点文件夹:/var/www/html/

后期如遇到大量改动配置文件

http -t 检测你懂配置文件是否有格式,语法,拼写错误

改完配置文件记得重启httpd服务

HTTP的版本

http0.9:只有下载(get)

http1.0:有下载(get)和上传(put),不支持持久连接

http1.1:有下载和上传,支持持久连接

http的状态码

状态码:

1xx:100-101 信息提示

2xx:200-206 成功

3xx:300-307 重定向

4xx:400-415 错误类信息,客户端错误

5xx:500-505 错误类信息,服务器端错误

常用的状态码:

200 OK
请求成功(其后是对GET和POST请求的应答文档)
301 Moved Permanently
请求的永久页面跳转,永久重定向,缓存在你的主机上
302
临时重定向,服务器会再次解析
307
浏览器内部重定向
403 Forbidden
禁止访问该页面
404 Not Found
服务器无法找到被请求的页面
500 Internal Server Error
内部服务器错误
502 Bad Gateway
无效网关
503 Service Unavailable
当前服务不可用
504 Gateway Timeout
网关请求超时
​
​

4开头的状态码

400 Bad Request 客户端请求的语法错误,服务器无法理解 
401 Unauthorized 请求要求用户的身份认证 
402 Payment Required 保留,将来使用 
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求 
404 Not Found 服务器无法根据客户端的请求找到资源(网页) 。通过此代码,网站设计人员可设置’您所请求的资源无法找到"的个性页面 
405 Method Not Alowed 客户端请求中的方法被禁止 
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求 
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似, 但请求者应当使用代理进行授权 
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时 
409 Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突 
410 Gone 客户端请求的资源已经不存在。410不同于404, 如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息 
412 Precondition Failed 客户端请求信息的先决条件错误 
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务Large器暂时无法处理,则会包含-个Retry-After的响应信息 
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务 器无法处理 
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式 
416 Requested range not satisfiable 客户端请求的范围无效 
417 Expectation Failed 服务器无法满足Expect的请求头信息

5开头的状态码

500 Internal Server Error 
服务器内部错误 ,无法完成请求 
501 Not Implemented 
服务器不支持请求的功能,无法完成请求 
502 Bad Gateway 
充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 
503 Service Unavailable 
由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 
504 Gateway Time-out 
充当网关或代理的服务器,未及时从远端服务器获取请求 
505 HTTP Version not supported 
服务器不支持请求的HTTP协议的版本,无法完成处理
​
​

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

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

相关文章

疯狂英语李阳团队到中科国药•中科大有大健康产业上市企业孵化平台

11月21日,李阳导师团队一行莅临中科国药•中科大有大健康上市企业孵化平台深圳盐田孵化园区考察交流、合作洽谈。期间,李阳导师团队参观孵化园区企业及深圳盐田国际职业培训学院,了解国际职业培训学院的发展情况,对国际职业教育规…

YOLOv8-Seg改进:SENetV2,squeeze和excitation全面升级,效果优于SENet | 2023年11月最新成果

🚀🚀🚀本文改进: SENetV2,squeeze和excitation全面升级,作为注意力机制引入到YOLOv8,放入不同网络位置实现涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-s…

HarmonyOS应用开发者基础认证考试(98分答案)

基于最近大家都在考这个应用开发者基础认证考试,因此出了一期,一样复制word里面搜索做,很快,当然good luck 判断题 Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(Tr…

Jetpack Compose——Text的基本使用

效果图为: // 第一行 Text(text "hello world", fontSize 30.sp)//设置字体大小// 第二行 Text(text stringResource(id R.string.hello_world),//设置为资源中的文字color colorResource(id R.color.purple_500)//设置字体颜色)// 第三行 Text(tex…

学习感悟一己之言

学习感悟一己之言 学习上克服困难实际上是克服心理上或认识上的障碍的过程。所谓的理解,就是化陌生为熟悉。看不懂,一方面是因为接触的材料太陌生,即远离你当前的背景知识;另一方面是材料或讲述者的描述刻画不准确或晦涩不当。有了…

实现优雅的自增枚举类:Python中的枚举与自增技巧

更多资料获取 📚 个人网站:ipengtao.com 枚举类型在编程中扮演着重要的角色,它们为变量赋予了更加清晰的含义。然而,在Python中,实现自增的枚举类并非直接而简单的任务。本文将深入讨论如何通过不同的方式优雅地实现自…

羊大师分析,鲜羊奶对健康的影响与作用

羊大师分析,鲜羊奶对健康的影响与作用 你是否曾经听到过“羊奶比牛奶更健康”的说法?而鲜羊奶作为最纯正的羊奶形式,其营养价值更是不可小觑。除了拥有传统奶类所包含的营养成分外,鲜羊奶还含有更多人体必需的氨基酸和微量元素&a…

Python应用:利用matplotlib画学生成绩分布饼图

1. 题目 给定一组学生成绩:[85, 92, 78, 65, 95, 88, 72, 60, 98, 45, 100, 46, 23, 88, 67, 89, 67, 88, 99],现在评分等级为优(90-100)、良(70-89)、及格(60-69)、不及格&#xff…

js数组方法大全(开发必会)

前言 js中数组的方法还是有很多的,而且js中数组操作方法我说是一个前端开发必须熟练使用和掌握的我想没有人反对吧。 说真的,数组这些api本身还是需要死记硬背的,就像乘法口诀表,很多东西你需要很熟练的就能写出来。就像让你去找数组里面符合条件的元素,你总可能定义一个空数…

前向与反向过程的全连接与链式求导法则

在深度学习中,全连接神经网络是一种常见的模型结构。它由多个神经元按层连接而成,每个神经元都与前一层的所有神经元相连。在训练这样的模型时,我们通常需要计算损失函数对各层参数的梯度。本文将介绍前向与反向过程的全连接与链式求导法则&a…

C++基础 -24- 覆盖

覆盖的三个条件 -1- 基类和派生类存在同名的函数 -2- 基类的函数为虚函数 -3- 必须使用基类引用或指针指向派生类 #include "iostream"using namespace std;class base {public:base(){}virtual void show(){cout << "base show" << endl;} };…

微信小程序自定义顶部导航栏的胶囊和微信自带的胶囊一样的透明背景色

想要实现微信自带的右上角胶囊背景透明很简单&#xff0c;只需要在pages.js里面设置下面配置就可以了&#xff1a; "navigationStyle": "custom","navigationBarTextStyle": "white" 但是设置完这个后&#xff0c;胶囊的背景色是那种…

【android开发-04】android中activity的生命周期介绍

1&#xff0c;返回栈 android中使用任务task来管理activity&#xff0c;一个任务就是一组存放在栈里的活动的集合&#xff0c;这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动&#xff0c;他会在返回栈中人栈&#xff0c;并处以栈顶的位置&#xff0…

c题目13:验证100以内的数是否满足哥德巴赫猜想。(任一大于2的偶数都可以写成两个质数之和)

每日小语 活下去的诀窍是&#xff1a;保持愚蠢&#xff0c;又不能知道自己有多蠢。——王小波 自己思考 即要让第一个质数与这个数减去第一个质数的值都为质数&#xff0c;所以要满足几个条件 1.abc 2.a为质数 3.b为质数 这里是否可以用到我之前刚学的自己设置的那个判断…

matlab 混沌动力学行为-分岔图-李雅普指数等

1、内容简介 略 24-可以交流、咨询、答疑 2、内容说明 混沌动力学行为-分岔图-李雅普指数等 包含各种类型的混沌模型求解&#xff0c;包含其分叉图、李雅普指数等 混沌、分叉图、李雅普指数 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器&#xff0c;可以用来分析SQL执行计划&#xff0c;需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

CCC数字车钥匙(八)——BLE配对相关字段

2.1 配对连接协议 2.1.3 所有者配对广播 对于所有者配对&#xff0c;仅支持Legacy LE 1M PHY。ADV_IND需要按照Section 2.3.1.1 Volume 6 Part B。 事件类型&#xff1a;无指向可连接和可扫描。 ADV_IND中包含广播地址和广播数据&#xff0c;如下所示&#xff0c;其中广播地址…

火狐插件(附加组件)发布流程

1、进入开发者中心 开发者中心 :: Firefox 附加组件https://addons.mozilla.org/zh-CN/developers/ 路径&#xff1a; 2、首次使用会自动打开注册登录页 3、注册登录后点击 提交你的第一个附加组件 4、此时需要进行两步验证 5、点击身份验证应用 在打开的页面中根据个人实际…

外包搞了3年,感觉技术退步很明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

数据结构-错题整理(1)-23/11/27

一&#xff1a; 题目&#xff1a; 广义表即我们通常所说的列表&#xff08;lists)。它放松了对表元素的原子性限制&#xff0c;允许他们有自身结构。那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为&#xff1f; 答案为1和4 知识点&#xff1a; 广义表的长度和深度 长…