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

http协议简介

http

1.简介

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

超文本传输协议,是我们浏览网页、看在线视频、听在线音乐等必须遵循的规则。正是在这样的规则下,浏览器(万维网客户)才能向万维网服务器发送万维网文档请求,然后服务器会将请求的文档发送回浏览器。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和规则,这些格式和规则就构成了超文本传输协议。

计算机系统中有一个专门为HTTP开放的80端口,主要用于万维网传输信息的协议。每个万维网网点(可以是计算机)都有一个服务器进程来监听TCP的80端口,一旦发现浏览器向它发出连接建立请求,继而建立TCP连接,浏览器就向万维网服务器发出浏览某个网页的请求,服务器就接着返回所请求的页面作为响应。最后,TCP连接被释放。

需要说明的是,HTTP协议是无状态的,也就是说同一个客户第二次访问同一个服务器上面的页面时,服务器的响应与第一次访问时的相同。服务器并不知道曾经访问过此客户,更不会记得此客户曾经被服务过多少次了。但是,在实际工作中一些万维网站点还是希望能够识别用户的。比如,你在某个购物网站上将某个产品加入购物车后,希望继续浏览并选购其它商品,这时服务器就需要记住用户的身份以便所有的商品可以一起结账。

HTTP中的Cookie提供了这种功能。Cookie是这样工作的:当用户(代号为User)访问某个使用Cookie的网站时,该网站就会为User产生一个唯一的识别码并以此作为索引在服务器的后端数据库中产生一个项目。接着在给User的HTTP响应报文(关于HTTP的报文结构附录会有介绍,读者可以先看那部分内容)中添加Set-cookie的首部行。这里的"首部字段名"为"Set-cookie",后面的"值"就是赋予该用户的"识别码"。例如这个首部行为:Set-cookie:09876543。

当User收到这个响应时,其浏览器就在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。当User继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码并放到HTTP请求报文的Cookie首部行中:Cookie:09876543。于是这个网站就能够跟踪User在这个网站的活动,也就能够实现购买的商品一起付费了。服务器和用户的交集仅仅在于这个识别码,服务器不知道User的其它任何信息。

2. http版本

HTTP/0.9
HTTP 1990 年问世。那时的 HTTP 并没有作为正式的标准被建立。
现在的 HTTP 其实含有 HTTP1.0 之前版本的意思,因此被称为
HTTP/0.9
HTTP/1.0
HTTP 正式作为标准被公布是在 1996 年的 5 月,版本被命名为
HTTP/1.0,并记载于 RFC1945。虽说是初期标准,但该协议标准至今
仍被广泛使用在服务器端。
RFC1945 - Hypertext Transfer Protocol -- HTTP/1.0
http://www.ietf.org/rfc/rfc1945.txt
HTTP/1.1
141997 1 月公布的 HTTP/1.1 是目前主流的 HTTP 协议版本。当初的
标准是 RFC2068,之后发布的修订版 RFC2616 就是当前的最新版
本。
RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1
http://www.ietf.org/rfc/rfc2616.txt
可见,作为 Web 文档传输协议的 HTTP,它的版本几乎没有更新。新
一代 HTTP/2.0 正在制订中,但要达到较高的使用覆盖率,仍需假以
时日。
当年 HTTP 协议的出现主要是为了解决文本传输的难题。由于协议本
身非常简单,于是在此基础上设想了很多应用方法并投入了实际使
用。现在 HTTP 协议已经超出了 Web 这个框架的局限,被运用到了
各种场景里。
3.http状态码
在我们访问浏览器资源时我们会遇到各种的http状态码

2xx

200表示成功

 204表示该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分

206表示对某一段范围的请求

 

3xx

301资源已更新

302资源临时重定向

303访问的资源存在另外一个URL

 

304资源找到但是不符合条件

 

307与302同样含义,307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响 应时的行为,每种浏览器有可能出现不同的情况。

 4xx

400请求报文错误

401发送的请求需要验证

 

该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、 DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示 用 户认证失败。 返回含有 401 的响应必须包含一个适用于被请求资源的 WWWAuthenticate 首部用以质询(challenge)用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。

 

 403不允许访问

该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要 给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分 66对原因进行描述,这样就能让用户看到了。 未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发 送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。
404没用该资源

5xx

500内部资源出现问题

 

503服务器停机维护

 4.常见HTTP方法

 每个HTTP报文都包含一个方法 这个方法决定服务器执行什么动作

这一节我们简单介绍了http协议的一些基础信息 下一节我们就可以使用HTML语言建立起客户端和服务器的链接 并且可以使用到http协议

 参考书目

图解HTTP

Linux高性能服务器编程

 

 

相关文章:

http协议简介

http 1.简介 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处…...

CSDN 第三十一期竞赛题解

第二次参加 总分77.5,主要是在最后一题数据有误,花费了巨量时间… 参加的另一次比赛最后一道题目也出现了一点问题,有点遗憾。 题解 T1:最优利润值 你在读的经营课程上,老师布置了一道作业。在一家公司的日常运营中&…...

EM_ASM系列宏定义(emscripten)

2.5 EM_ASM系列宏很多编译器支持在C/C代码直接嵌入汇编代码,Emscripten采用类似的方式,提供了一组以“EM_ASM”为前缀的宏,用于以内联的方式在C/C代码中直接嵌入JavaScript代码。2.5.1 EM_ASMEM_ASM使用很简单,只需要将欲执行的Ja…...

Batchnorm和Layernorm的区别

在深度学习训练中,我们经常会遇到这两个归一化操作,他们之间有什么区别呢?我们来简单介绍一下: BatchNorm: 在深度学习训练的时候我们的数据如果没有经过预处理,有可能会出现梯度消失或者梯度爆炸的情况&…...

高级前端面试题汇总

iframe 有那些优点和缺点? iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。 优点: 用来加载速度较慢的内容(如广告)可以使脚本可以并行下载可以实现跨子域通信 缺点: iframe 会…...

HTML#5表单标签

一. 表单标签介绍表单: 在网页中主要负责数据采集功能,使用<form>标签定义表单表单项: 不同类型的input元素, 下拉列表, 文本域<form> 定义表单<input> 定义表单项,通过typr属性控制输入形式<label> 为表单项定义标注<select> 定义下拉列表<o…...

ONNX可视化与编辑工具

ONNX可视化与编辑工具netrononnx-modifier在模型部署的过程中&#xff0c;需要使用到ONNX模型&#xff0c;下面给大家推荐两个ONNX可视化与编辑工具&#xff0c;其中&#xff0c;netron仅支持模型的可视化&#xff0c;onnx-modifier支持ONNX的可视化与编辑。 netron Netron是…...

Verilog 学习第五节(串口接收部分)

小梅哥串口部分学习part2 串口通信接收原理串口通信接收程序设计与调试巧用位操作优化串口接收逻辑设计串口接收模块的项目应用案例串口通信接收原理 在采样的时候没有必要一直判断一个clk内全部都是高/低电平&#xff0c;如果采用直接对中间点进行判断的话&#xff0c;很有可能…...

AIX系统常见漏洞修复(exec、rlogin、rsh、ftp、telnet远端服务运行中)

漏洞&#xff1a;1.1 SSH 服务支持弱加密算法 1. 使用telnet 登录2.vi /etc/ssh/sshd_config 最后添加一下内容&#xff08;去掉 arcfour、arcfour128、arcfour256 等弱加密算法&#xff09; Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast…...

IEEE SLT 2022论文丨如何利用x-vectors提升语音鉴伪系统性能?

分享一篇IEEE SLT 2022收录的声纹识别方向的论文&#xff0c;《HOW TO BOOST ANTI-SPOOFING WITH X-VECTORS》由AuroraLab&#xff08;极光实验室&#xff09;发表。 来源丨AuroraLab AuroraLab源自清华大学电子工程系与新疆大学信息科学与工程学院&#xff0c;以说话人识别和…...

设计模式(十三)----结构型模式之桥接模式

1 概述 现在有一个需求&#xff0c;需要创建不同的图形&#xff0c;并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系&#xff1a; 我们可以发现有很多的类&#xff0c;假如我们再增加一个形状或再增加一种颜色&#xff0c;就需要创建更多的类。 试…...

倾向得分匹配案例分析

一、倾向得分匹配法说明 倾向得分匹配模型是由Rosenbaum和Rubin在1983年提出的&#xff0c;首次运用在生物医药领域&#xff0c;后来被广泛运用在药物治疗、计量研究、政策实施评价等领域。倾向得分匹配模型主要用来解决非处理因素&#xff08;干扰因素&#xff09;的偏差。 …...

基于SpringCloud的可靠消息最终一致性04:项目基础代码

上一节给出了项目需求和骨架代码,这一节来接着看基础代码。骨架代码和基础代码最主要的区别是:骨架代码都是数据库脚本、POM依赖文件、配置文件内容、运维脚本等,而基础代码则是和业务有关联,但并非关键代码的部分。 这些代码不用一个个地看,主要是看看结构就行。 图二十五…...

操作系统权限提升(十八)之Linux提权-内核提权

Linux 内核提权 Linux 内核提权原理 内核提权是利用Linux内核的漏洞进行提权的&#xff0c;内核漏洞进行提权一般包括三个环节&#xff1a; 1、对目标系统进行信息收集&#xff0c;获取到系统内核信息及版本信息&#xff1b; 2、根据内核版本获取其对应的漏洞以及EXP 3、使…...

华为OD机试真题Java实现【快递运输】真题+解题思路+代码(20222023

快递运输 题目 一辆运送快递的货车,运送的快递均放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。 注:快递的体积不受限制,快递数最多1000个,货车载重最大50000。 🔥🔥🔥🔥🔥👉👉👉👉👉�…...

java面试题-JVM问题排查

1.常见的Linux定位问题的工具&#xff1f;常见的 Linux 定位问题的命令可以分为以下几类&#xff1a;系统状态命令&#xff1a;包括 top、uptime、vmstat、sar 等命令&#xff0c;用于查看系统整体的状态&#xff0c;如 CPU 使用率、内存使用率、磁盘 I/O 等。进程状态命令&…...

市场上有很多低代码开发平台,不懂编程的人可以用哪些?

市场上有很多低代码开发平台&#xff0c;不懂编程的人可以用哪些&#xff1f;这个问题一看就是外行问的啦&#xff0c;低代码平台主打的就是一个“全民开发”&#xff0c;而且现在很多低代码平台都发展为零代码了&#xff0c;不懂编程也完全可以使用&#xff01; 所谓低代码开…...

Tina_Linux打包流程说明指南_new

OpenRemoved_Tina_Linux_打包流程_说明指南_new 1 概述 1.1 编写目的 介绍Allwinner 平台上打包流程。 1.2 适用范围 Allwinner 软件平台Tina v3.0 版本以上。 1.3 相关人员 适用Tina 平台的广大客户&#xff0c;想了解Tina 打包流程的开发人员。 2 固件打包简介 固件…...

JVM面试题

JVM 1.jvm的组成部分 类加载器:将javac编译的class文件加载到内存中 运行时数据区&#xff1a;将内存划分成若干个不同的区域。 执行引擎&#xff1a;负责解析命令&#xff0c;提交操作系统执行。 本地接口&#xff1a;融合不同的语言为java所用 2.运行时数据区 方法区&…...

@FeignClient注解

1.在启动类上开启Feign功能 不开会提示找不到所需要的bean Consider defining a bean of type in your configuration SpringBootApplication EnableFeignClients public class AuthApplication {public static void main(String[] args) {SpringApplication.run(AuthApplic…...

一文搞懂如何在 React 中使用 防抖(Debounce)和 节流(Throttle)

在前端的日常开发中&#xff0c;经常会使用到两个函数防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;&#xff0c;防抖函数可以有效控制在一段时间内只执行最后一次请求&#xff0c;例如搜索框输入时&#xff0c;只在输入完成后才进行请求接口。…...

Airbyte API

Airbyte API涵盖了Airbyte功能的方方面面&#xff0c;主要分类&#xff1a;Source_definition&#xff1a;来源定义&#xff0c;实现了来源的增删改查功能。Destination_definition&#xff1a;目标定义&#xff0c;实现了目标的增删改查功能。Workspace&#xff1a;工作区管理…...

vue项目使用Electron开发桌面应用

添加npm配置避免安装Electron错误 请确保您的 node 版本大于等于 18. cmd运行&#xff1a; npm config edit 该命令会打开npm的配置文件&#xff0c;请在空白处添加&#xff1a; electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/ e…...

std::chrono笔记

文章目录1. radio原型作用示例2. duration原型&#xff1a;作用示例3. time_point原型作用示例4. clockssystem_clock示例steady_clock示例high_resolution_clock先说感觉&#xff0c;这个库真恶心&#xff0c;刚接触感觉跟shi一样&#xff0c;特别是那个命名空间&#xff0c;太…...

接收arp请求并发送回应的实例

本文简单介绍了arp协议,用一个实例查看收到的ARP请求,并对该请求发出ARP回应,实例有完整的源代码,使用C语言在Linux下实现,代码中有详细的注释。 1. ARP协议 ARP(Address Resolution Protocol),地址解析协议;在局域网上通过IP地址获取物理地址MAC的协议,该协议工作在数…...

【高性能计算】TVM使用TE手动优化矩阵乘法算法解析与代码解读

引言 注&#xff1a;本文主要介绍、解释TVM的矩阵优化思想、代码&#xff0c;需要配合代码注释一起阅读。 矩阵乘法是计算密集型运算。为了获得良好的 CPU 性能&#xff0c;有两个重要的优化措施&#xff1a; 提高内存访问的高速缓存命中率。复杂的数值计算和热点内存&#x…...

消息中间件的概念

中间件(middleware)是基础软件的一大类&#xff0c;属于可复用的软件范畴。中间件在操作系统软件&#xff0c;网络和数据库之上&#xff0c;应用软件之下&#xff0c;总的作用是为处于自己上层的应用软件提供运行于开发的环境&#xff0c;帮助用户灵活、高效的开发和集成复杂的…...

窃密恶意软件Raccoon最新样本Stealer v2分析

Raccoon 是一个恶意软件家族&#xff0c;2019 年来一直在地下犯罪论坛中以恶意软件即服务的身份进行售卖。2022 年 7 月&#xff0c;该恶意软件家族发布了 C 语言编写的新版本 Raccoon Stealer v2&#xff0c;打破了以往使用 C 开发的传统。 Raccoon 是一个信息窃密恶意软件&a…...

足球俱乐部管理系统

技术&#xff1a;Java、JSP等摘要&#xff1a;网站是一种主要的渠道。人们通过互联网快速、准确的发布信息、获取信息。而足球俱乐部是足球职业化、专业化的一个标志&#xff0c;是足球运动员以足球谋生时&#xff0c;所被聘用的机构&#xff0c;应运时代发展&#xff0c;规模、…...

2023上半年数学建模竞赛汇总(比赛时间、难易程度、含金量、竞赛官网)

1、美国大学生数学建模竞赛等级&#xff1a;国家级是否可跨校&#xff1a;否竞赛开始时间&#xff1a;2月17日~2月21日综合难度&#xff1a;⭐⭐⭐⭐ 竞赛含金量&#xff1a;⭐⭐⭐⭐⭐竞赛官网&#xff1a;https://www.comap.com/2、MathorCup高校数学建模挑战赛---大数据竞赛…...

网站开发合同范本/外贸网络营销

【题目描述】&#xff1a; 幼儿园里有N个小朋友,1xhgww老师现在想要给这些小朋友们分配糖果&#xff0c;要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心&#xff0c;总是会提出些要求&#xff0c;比如小明不希望小红分到的糖果比他的多&#xff0c;于是在分配糖果的时候l…...

乐安网站建设/品牌营销公司

MyBatis 是支持普通 SQL查询。存储过程和高级映射的优秀持久层框架。MyBatis 消除了差点儿全部的JDBC代码和參数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射&#xff0c;将接口和 Java 的POJOs&#xff08;Plain Old Java Objects&#xff0c…...

网站内容被攻击该怎么做/网络营销策划书范文

目录 1.堆大小设置 2.JVM回收器和其他参数 3.JVM常见配置汇总 4.JVM在idea配置实战 5.JVM优化总结 1.堆大小设置 JVM 中最大堆大小有三方面限制&#xff1a;相关操作系统的数据模型&#xff08;32-bt还是64-bit&#xff09;限制&#xff1b;系统的可用虚拟内存限制&#x…...

eclipse开发动态网站开发/网站定制开发

1. 问题描述&#xff1a; 有一个 ab 的整数组成的矩阵&#xff0c;现请你从中找出一个 nn 的正方形区域&#xff0c;使得该区域所有数中的最大值和最小值的差最小。 输入格式 第一行为三个整数&#xff0c;分别表示 a&#xff0c;b&#xff0c;n 的值&#xff1b;第二行至第…...

接网站开发的公司/seo推广培训学费

一 前言 目前&#xff0c;越来越多的网站采用Linux操作系统&#xff0c;提供邮件、Web、文件存储、数据库等服务。也有非常多的公司在企业内部网中利用Linux服务器提供这些服务。随着人们对Linux服务器依赖的加深&#xff0c;对其可靠性、负载能力和计算能力也倍加关注。Linux集…...

水果门户网站建设/建立免费网站

1.常用集合类 在并发场景中&#xff0c;传统的集合类在写操作时很容易出现java.util.ConcurrentModificationException 并发修改异常 &#xff0c;因此在JUC中引出了很多的集合类对于传统的集合类&#xff0c;其实也有一些解决并发的方案&#xff0c;但是效率是远不如JUC包下的…...