http协议详解

HTTP是什么?

HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础,同时,也是一种客户端—服务器(client-server)协议,也就是说,请求是由接受方——通常是浏览器——发起的。一个完整网页文档是由获取到的不同文档组件——像是文本、布局描述、图片、视频、脚本等——重新构建出来的。

HTTP是web网页的常用协议,它在七层协议的应用层。用于客户端和web服务器的数据交换、通信和信息交换。

HTTP的中间件服务器

在这里插入图片描述

Tomcat、Nginx和Apache都是HTTP常见的中间件服务器,HTTP服务器本质上也是一种应用程序,它通过监听TCP端口,然后客户端根据HTTP协议获取服务器上的文件、图像等。

静态网页和动态网页

静态网页:

(1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没有程序代码,只有HTML(即:超文本标记语言),一般后缀为.html,.htm,或者.xml等。虽然静态网页的页面一旦做成,内容就不会再改变了。但是,静态网页也包括一些能动的部分,这些主要是一些GIF动画等

(2)静态网页的打开,用户可以直接双击,并且不管任何人任何时间打开的页面的内容都是不变的。

动态网页:

(1)动态网页是指跟静态网页相对的一种网页编程技术。动态网页的网页文件中除了HTML标记以外,还包括一些特定功能的程序代码,这些代码可以使得浏览器和服务器可以交互,所以服务器端根据客户的不同请求动态的生成网页内容。

(2)动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如PHP、ASP、JSP等)生成的网页都可以称为动态网页。

静态网页的后端没有代码参与,它与数据库不能进行交互,静态网页并不能理解为静止的网页,静态网页和动态网页是根据代码和交互性来划分的。动态网页的后端有特定的代码参与,它可以和数据库进行交互。

URL

统⼀资源定位符(网址,全球唯⼀),用来告诉Web 服务器,浏览器所请求资源(文件)的路径(URI)。

http://127.0.0.1/pikachu-master/vul/burteforce/bf_form.php

URL由两个主要的部分构成:协议(Protocol)和目的地(Destination)。

协议”是告诉我们自己面对的是何种类型的Internet资源。

web中最常见的协议是http,它表示从Web中取回的是HTML文档。其他协议还有gopher,ftp和telnet等。

**“目的地“**可以是某个文件名、目录名或者某台计算机的名称。

URL即网址,它是一个网页的资源定位符,表示了网络资源的所在位置和访问方法(这个方法与编程语言中的方法无任何关系,如get和post就是两种请求方法),具有唯一性。

HTTP报文

请求报文

HTTP 请求报文由请求行、请求头、请求正文三个部分组成。

请求行:HTTP 报文的第⼀行,由空格字符分成三部分

GET /pikachu-master/vul/burteforce/bf_form.php HTTP/1.1

请求方法:GET (请求方法有两种,GET和POST)

资源路径: /pikachu-master/vul/burteforce/bf_form.php

协议/版本:HTTP/1.1

请求头字段:

字段含义
Host主要用于指定被请求资源的服务器地址和端口号
User-Agent用户客户端的浏览器信息,相当于浏览器指纹
Referer包含一个URL,代表当前URL的上一个URL
Cookie记录请求者的身份认证信息
Accept-Charset用于指定浏览器接收的字符集
Content-Type用于向接收方 (浏览器或服务器) 指示实体的介质类型 (数据类型,MIME)
Content-Length用于指明实体正文的长度,以字节方式存储的十进制数字来表示
Last-Modified用于指示资源的最后修改时间

响应报文

响应报文由状态行、响应报头、响应正文三部分组成

状态行:响应报文的第⼀行,

HTTP/1.1 200 OK

协议/版本:HTTP/1.1

响应状态码:200

描述短语:OK

响应报头:响应报文第二行开始到第⼀个空行为止的所有内容,其中包含了关于HTTP响应的重要字段。

响应报文:响应报文从第⼀个空行开始到最后的所有内容。 服务器返回资源的内容,即浏览器接 收到的HTML 代码

响应头字段:

字段含义
Data时间和日期
ServerWeb 服务器指纹
Last-Modified服务器通过这个头信息告诉浏览器,资源的最后修改时间
Content-Length响应正文的长度
Content-Type响应正文的类型
Set-Cookiecookie头,向浏览器端写入Cookie配置 信息
Location重定向目标页面
Refresh服务器通过Refresh头告诉浏览器定时刷新浏览器

响应状态码:

状态码类型
1XX信息性状态码
2XX成功状态码
3XX重定向状态码
4XX客户端错误状态码
5XX服务器错误状态码

403表示客户端没有访问该页面的权限;404表示所访问的页面不存在,即客户端请求错误

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++ 网络协议] 套接字和地址族、数据序列

目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…

Web菜鸟教程-Springboot使用MyBatis生成器生成代码

SpringBoot大大简化了Web开发流程。可以这么说,做Web后来开发大部分时间就是在做配置文件修改。Web开发中,终端的运算能力越来越强,大部分场景就是数据库的操作,只有少部分逻辑会放在Web端处理。而这些增删查改基本属于标准的格式…

Nginx反向代理配置+负载均衡集群部署

文章目录 负载均衡反向代理基础环境部署:什么是代理实验环境图流量过程 环境部署准备两台Web服务器安装Nginx准备页面内容添加主机名 代理服务器配置 修改windos hosts文件测试:终端浏览器 负载均衡反向代理基础环境部署: 什么是代理 正向代…

Python爬虫——selenium的安装和基本使用

1.什么是selenium? selenium是一个用于web应用程序测试的工具selenium测试直接运行在浏览器中,就像真正的用户在操作一样支持通过各种driver(FrifoxDriver,ItenrentExploreDriver,OperaDriver,ChromeDrive…

Android模板设计模式之 - 构建整个应用的BaseActivity

1. 模式介绍 模式的定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模式的使用场景 1.多个子类有公有的方法,并且逻辑基本相同时。 2.重要、复杂的算法,可…

threejs中gltf模型出现的问题(黑色,颜色不协调,太小)和解决方案

模型一片漆黑 如下图 可能原因,没有灯光,加下以下代码: // 4、加入灯光 const lightness new THREE.HemisphereLight(0xffffff, 0x444444); lightness.position.set(0, 20, 0); scene.add(lightness); const shadowLight new THREE.Direct…

实现同时查找多个关键词——KeywordCrafter - 关键词匠心

具体功能:同时查找多个关键词,高亮加粗显示,并关键词显示出现次数。 🧐碎碎念:最近在写文案的时候,总是要避免出现一个敏感词汇,利用 (commandF) or (CtrF) 查找,只能一个一个单词去…

中国艺术孙溟㠭篆刻作品《得大自在》

关汉卿《四块玉闲适》:“适意行,安心坐。渴时饮,饥时餐,醉时歌。困来时就向莎茵卧。日月长,天地阔,闲快活。” 整理/释门

JS逆向系列之猿人学爬虫第14题-备而后动-勿使有变

文章目录 题目地址参数分析参考jspython 调用往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/14题目难度标的是困难,主要难在js混淆部分。 参数分析 初始抓包有无限debugger反调试,可以直接hook 函数构造器过掉无限debugger Function.prototype.__construc…

[FPAG开发]使用Vivado创建第一个程序

1 打开Vivado软件,新建项目 选择一个纯英文路径 选择合适的型号 产品型号ZYNQ-7010xc7z010clg400-1ZYNQ-7020xc7z010clg400-2 如果型号选错,可以单击这里重新选择 2 创建工程源文件 可以看到文件创建成功 双击文件打开,插入代码 modul…

IOC容器

DI(依赖注入):DI(Dependency Injection)是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器,使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…

【分布式存储】数据存储和检索~B+树

为什么数据存储结构重要 在存储系统中,其实不管数据是什么样的,归根结底其实都还是取决于数据的底层存储结构,而主要常见的就是数据库索引结构,B树、Redis中跳表、以及LSM、搜索引擎中的倒排索引。本质都是如何利用不用的数据结构…

Linux下grep通配容易混淆的地方

先上一张图: 我希望找到某个版本为8的一个libXXX.8XXX.so ,那么应该怎么写呢? 先看这种写法对不对: 是不是结果出乎你的意料之外? 那么我们来看一下规则: 这里的 "*" 表示匹配前一个字符的零个或多个 于是我们就不难理解了: lib*8*.so 表示 包…

24近3年内蒙古大学自动化考研院校分析

今天给大家带来的是内蒙古大学控制考研分析 满满干货~还不快快点赞收藏 一、内蒙古大学 学校简介 内蒙古大学位于内蒙古自治区首府、历史文化名城呼和浩特市,距北京400余公里,是中华人民共和国成立后党和国家在民族地区创办的第一所综合大…

pytest数据驱动 pandas

pytest数据驱动 pandas 主要过程:用pandas读取excel里面的数据,然后进行百度查询,并断言 pf pd.read_excel(data_py.xlsx, usecols[1,2])print(pf.values)输出:[[‘听妈妈的话’ ‘周杰伦’] [‘遇见’ ‘孙燕姿’] [‘伤心太平…

npm 报错 cb() never called!

不知道有没有跟我一样的情况,在使用npm i的时候一直报错:cb() never called! 换了很多个node版本,还是不行,无法解决这个问题 百度也只是让降低node版本请缓存,gpt给出的解决方案也是同样的 但是缓存清过很多次了&a…

【小练习】交互式网格自定义增删改错误记录及解决(进行中)

经过之前的学习,已经能创建简单的交互式网格并设置自定义增删改按钮,但是实现上还是存在一些问题,来完善优化一下。 首先是修改,正常修改都会弹出修改框,里面是之前存储的信息,根据实际需要对其进行修改&a…

Sharding-JDBC概述

前言 ​ 随着业务数据量的增加,原来所有的数据都是在一个数据库上的,网络IO及文件IO都集中在一个数据库上的,因此CPU、内存、文件IO、网络IO都可能会成为系统瓶颈。当业务系统的数据容量接近或超过单台服务器的容量、QPS/TPS接近或超过单个数…

web测试与app测试的区别

web测试与app测试的区别 首先从系统架构来看的话: web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。 web测试只要更新了服务器端,客户端…