了解http协议

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协议的版本,无法完成处理
​
​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊云科技向量数据库与生成式AI的完美融合:落地实践详解(四)

以往 OpenSearch 摄入时的一些最佳实践中并不包含 knn 的情况,所以在 knn 索引存在的情况,不能完全参照之前的结论,通过以上三种不同的实验方式,在多次实验的过程中,本文得到了以下的一些实践经验和结论,供…

自研分布式IM-HubuIM RFC草案

HubuIM RFC草案 消息协议设计 基本协议 评估标准 【性能】协议传输效率,尽可能降低端到端的延迟,延迟高于200ms用户侧就会有所感知 【兼容】既要向前兼容也要向后兼容 【存储】减少消息包的大小,降低空间占用率,一个字节在亿…

一键添加特效与色彩变化,视频剪辑高手助力创作炫酷短片!

亲爱的视频创作者们,想要让你的视频更加炫酷、吸引眼球吗?现在,我们有一款神奇的工具,可以帮助你一键添加特效与色彩变化,让你的视频瞬间焕发新活力! 首先第一步,我们要进入视频剪辑高手并在上…

关于Unity中字典在Inspector的显示

字典在Inspector的显示 方法一:实现ISerializationCallbackReceiver接口 《unity3D游戏开发第二版》记录 在编辑面板中可以利用序列化监听接口特性对字典进行序列化。 主要继承ISerializationCallbackReceiver接口 实现OnAfterDeserialize() OnBeforeSerialize() …

「实用场景教程」如何用日程控件DHTMLX Scheduler制作酒店预订日历?(三)

dhtmlxScheduler是一个类似于Google日历的JavaScript日程安排控件,日历事件通过Ajax动态加载,支持通过拖放功能调整事件日期和时间,事件可以按天,周,月三个种视图显示。 DHTMLX Scheduler正式版下载 在本教程中&…

Mac 安装 Django 并连接 MySQL

一、下载安装运行Django看官方教程就好了,网址:Django 安装_w3cschool 二、连接MySQL(我用的是pymysql和mysqlclient): 1、创建好项目后找到这个文件 2、修改当中的连接信息,将这些信息改成你自己的就好了…

(三)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法(TTA&#xf…

ruoyi+Hadoop+hbase实现大数据存储查询

前言 有个现实的需求,数据量可能在100亿条左右。现有的数据库是SQL Server,随着采集的数据不断的填充,查询的效率越来越慢(现有的SQL Server查询已经需要数十秒钟的时间),看看有没有优化的方案。 考虑过S…

vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果

一、实现效果 使用echarts实现省市地图绘制根据数据在地图显示柱状图根据数据显示数据,涟漪效果 二、实现方法 1、安装echarts插件 npm install echarts --save2、获取省市json数据 https://datav.aliyun.com/portal/school/atlas/area_selector 通过 阿里旗下…

(2)(2.2) Lightware SF45/B(350度)

文章目录 前言 1 安装SF45/B 2 连接自动驾驶仪 3 通过地面站进行配置 4 参数说明 前言 Lightware SF45/B 激光雷达(Lightware SF45/B lidar)是一种小型扫描激光雷达(重约 50g),扫描度可达 350 度,扫描范围 50m。 1 安装SF45…

老技术告诉你如何选择代理IP以满足数据采集需求

根据IDC发布的大数据行业最新报道显示,目前已经有越来越多的企业将重点放在大数据技术之上,以大数据来进行创新工业互联网的建设,携手央国企共同推进新型工业化。由此可见大数据的重要性。不过具体到每一位技术人员来说,在进行数据…

[读论文][跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion

github: GitHub - Nota-NetsPresso/BK-SDM: A Compressed Stable Diffusion for Efficient Text-to-Image Generation [ICCV23 Demo] [ICML23 Workshop] ICML 2023 Workshop on ES-FoMo 简化方式 蒸馏方式(训练Task蒸馏outKD-FeatKD) 训练数据集 评测指标…

【赠书第10期】从概念到现实:ChatGPT和Midjourney的设计之旅

文章目录 前言 1 ChatGPT的崛起 2 Midjourney的探索 3 技术创新的交汇 4 对未来的影响 5 结论 6 推荐图书 7 粉丝福利 前言 在过去的几年里,自然语言处理和聊天模型的领域取得了飞速的发展。ChatGPT 作为一个由OpenAI 开发的大型语言模型,以其强…

设计中的经验规则 - 3W规则

设计中的经验规则 - 3W规则 摘要应用 3W 规则还是有很多地方需要注意12 33W规则范围 摘要 PCB板上两条走线截面图,电流通过时产生的辐射。距离比较近 3W 经验规则总体来说,是一条可以放心使用的规则。毕竟传播的电磁场强度与距离的平方成反比&#xff…

VS2017 C++ Qt工程打包软件

在Debug模式下或者Release模式下编译成功,会在工程的Debug文件夹和Release文件夹生成exe执行文件,以Debug为例,将Debug模式下的exe复制到新的文件夹路径下,然后打开Qt中的MSVC 2017 64-bit 打开后然后在命令窗口cd到exe的路径下&…

JDK8新特性

目录 传送门一、Lambda表达式1、概念2、语法基本语法:Lambda简写:Lambda 表达式与匿名内部类区别: 3、案例 二、接口中新增方法1、概念2、默认方法3、静态方法 三、函数式接口1、概念2、函数式接口的由来3、常见的函数式接口 四、方法引用1、…

mongoDB非关系型数据库学习记录

一、简介 1.1Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/ 1.2数据库是什么 数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序 1.3数据库的作用 数据库的主要作用就是管理数据,对数据进行增©、删(d)、…

项目实战之RabbitMQ冗余双写架构

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:项…

YOLOv7全网独家首发改进:SENet v2,Squeeze-Excitation模块融合Dense Layer,效果秒杀SENet

💡💡💡本文自研创新改进:SENet v2,针对SENet主要优化点,提出新颖的多分支Dense Layer,并与Squeeze-Excitation网络模块高效融合,融合增强了网络捕获通道模式和全局知识的能力 推荐指数:五星 收录 YOLOv7原创自研 https://blog.csdn.net/m0_63774211/category_12…

【localhost refused to connect】解决 linux服务器启动 jupyter notebook 后本地浏览器打不开

问题描述 在linux上输入: jupyter notebook 命令后,弹出的火狐浏览器可以打开笔记本,但是复制它给的加密 url 到 Google 或者 Edge 浏览器都出现如下情况: 解决办法 1. 生成 jupyter notebook 配置文件 在 linux 命令行输入如下…