首页 > 其他分享 >web基础以及http协议

web基础以及http协议

时间:2024-07-29 18:53:26浏览次数:12  
标签:web HTTP 请求 协议 证书 http 加密 服务器 客户端

⼀、web基本概念和常识

Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服 务是动态的、可交 互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览 服务,以及各种交互式服务,包括聊天、购物、学习等等内容。 Web 应⽤开发也经过了⼏代技术的不断发展,⽬前 Web 开发依 然是最重要的开发内容之⼀。Web 基础的技术包括超⽂本标记 语⾔(HTML)和 HTTP 协议,HTML 是⼀种呈现数据的⽅式 (给⼈看的),⽽ HTTP 则是⼀组通信的标准(语法、语义、 时许),可以简单的理解为 HTTP 携带 HTML。

1. web 应⽤:

⽹站(⼴义上的PC,⼿机app)

2. 浏览器(Browser):

也称⽤户代理,web客户端,主要有IE、 Edge、Chrome、Firefox、腾讯浏览器,360浏览器等。 3. web服务器(web server):

也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。

⼆、⽹站基础

1、域名 域名是⼀个IP地址的“⾯具” ,⽬的是便于记忆和访问⼀个或⼀ 组服务器的地址(⽹站,电⼦邮件,FTP 等)。

2、域名解析 本地HOSTS解析 DNS服务器解析

3、⽹站的基本概念 ⽹站、⽹⻚、主⻚; HTTP、URL、HTML、超链接

4、web ⽹站 web1.0(以编辑为特征) web2.0(侧重⽤户交互)

5、动态⻚⾯与静态⻚⾯的差别 (1)URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“?”

2)后缀不同 (开发语⾔不同)

静态⻚⾯⼀般以 .html .htm .xml 为后缀

动态⻚⾯⼀般以 .php .jsp .py等为后缀

(3)内容不同 静态⻚⾯的内容是固定的 动态⻚⾯的内容会因⽤户、浏览器、时间、地点等⽽发⽣变化。

6、域名格式 http://(协议头)www.bing.com(域名)/(URI资源:路径/⽂ 件名)

示例:https://www.bilibili.com/v/game/?spm_id_from=333.85 1.b_7072696d6172794368616e6e656c4d656e75.21

三、HTTP 协议 HTTP协议是超⽂本传输协议的缩写,英⽂是Hyper Text Transfer Protocol。它是从WEB服务器传输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议。

1、HTTP 原理 HTTP是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数 据类型为HTML ⽂件,图⽚⽂件,查询结果等。 HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL 向HTTP服务端即web服务器发送所有请求,web服务器收到客 户端请求后进⾏响应。

2、HTTP 特点

1. http协议⽀持客户端/服务端模式,也是⼀种请求/响应模式的协 议。

2. 简单快速:客户向服务器请求服务时,只需传送请求⽅法和路 径。请求⽅法常⽤的有GET、HEAD、POST。

3. 灵活:HTTP 允许传输任意类型的数据对象。传输的类型由 Content-Type 加以标记。除开可以响应字符串之外,还可以上 传和下载⼆进制⽂件

4. ⽆连接:限制每次连接只处理⼀个请求。服务器处理完请求,并 收到客户的应答后,即断开连接,但是却不利于客户端与服务器 保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态 的技术,⼀个叫做 Cookie,⼀个叫做 Session。

5. ⽆状态:⽆状态是指协议对于事务处理没有记忆,后续处理需要 前⾯的信息,则必须重传。 3、URI 和 URL 的区别

(1)HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴连接。 URI:Uniform Resource Identifier 统⼀资源标识符 URL:Uniform Resource Location 统⼀资源定位符

(2)URI 是⽤来标识⼀个具体的资源的,我们可以通过 URI 知道⼀ 个资源是什么,使⽤它就能够唯⼀地标记互联⽹上资源。

(3)URL 则是⽤来定位具体的资源的,标识了⼀个具体的资源位 置。互联⽹上的每个⽂件都有⼀个唯⼀的。

(4)URL,也就是我们俗称的⽹址,它实际上是 URI 的⼀个⼦集。

(5)URI 不仅包括 URL,还包括 URN(统⼀资源名称),它们之 间的关系如下

4、HTTP 报⽂组成

(1)客户端发出请求: GET /index.php HTTP/1.5/ Host:zgod.cn

(2)客户端浏览器发送出来的请求格式: GET:这个部分只声明了请求⽅式,除了get ⽅式可能还有 post 等⽅式。GET 表示请求,POST 表示邮寄。 /index.php:这⾥是⼀个URL,表示了我们要访问的资源是哪 个。 HTTP/1.5/:这⾥表示的是客户端浏览器使⽤的协议版本是1.5。 Host:zgod.cn:这是请求是交给主机zgod.cn的。

(3)服务器反馈的响应:

(4)服务器反馈的响应报⽂的具体含义: HTTP/1.5:部分表示服务器回馈的对应http版本 (刚才客户端的 请求⾥⾯带有版本号,对⽅使⽤的1.5,服务器回馈的也是1.5) 200 ok:这⾥表示的是处理结果的状态码和状态的简单描述(ok) Date:Mon,5 sep 2022 08:49:45 GMT:响应的具体时间 Content-Length:254:响应内容的⻓度 Content-Type:text/html:响应内容的类型 响应报⽂中打了⼀个空⾏(换⾏),当看到响应报⽂中有换⾏时, 它的下⾯开始就是客户机要访问的具体资源了。5、HTTP 状态码 2xx:成功,200成功、201已经创建 3xx:重定向,304未修改 4xx:请求错误,404未找到⽂件、408请求超时 5xx:服务器错,500服务器内部错误、502⽹关错误

6、HTTP 报⽂格式 ⼀个完整的http访问包含请求(request)和响应(response)

(1)请求报⽂ 客户端发出的报⽂:包含了请求⾏,请求头部字段,通⽤头部字 段,实体头部字段及报⽂主体。 请求⾏:客户端使⽤的请求⽅法,⽐如 GET,POST等等。同时 也包含了URL信息和HTTP的版本号。 请求头部字段:它包含了请求的符加信息,⽐如客户端的信息, 响应的优先级等等。 通⽤头部字段:是请求报⽂和响应报⽂都会使⽤的报⽂内容。实体头部字段:跟实体有关的资源信息,⽐如请求的实体更新时 间等。 报⽂主体:⼀般来所,请求报⽂在使⽤GET ⽅法时,没有报⽂ 主体,使⽤ POTS ⽅法时,就会有。

2)常⻅请求⽅法 Ⅰ. 客户端向服务器提出请求的⽅法

1. GET: 去向服务器获取资源。即请求指定的⻚⾯信息,并返回 实体主体。

1. POST:⽤来传输请求的实体主体。向指定资源提交数据进⾏处 理请求。数据被包含在请求体中。POST请求可能会导致新的资 源建⽴或已有资源修改。

1. HEAD:从服务器端获取报⽂⾸部信息,确定客户端输⼊的 URL 有效性和资源的更新⽇期。类似于get请求,只不过返回的响应 没有具体内容,只⽤于获取头部

1. OPTIONS:⽤来询问服务器⽀持哪些⽅法。即获取服务器⽀持 的请求⽅法

. DELETE:⽤来删除⽂件的。请求服务器删除指定的⻚⾯

7、HTTP协议缺点 HTTP协议不会保存状态信息。

⽐如说:客户机对服务器说,请你把之前给我的响应再给我⼀次。 那么这个时候服务器端是不会记录之前给了客户机什么东⻄的。它 会说,我TM哪⼉记得之前给了你什么啊!? 所以我们说HTTP是⽆状态协议。 ⽆状态协议不会去保存任何的响应记录,所以服务器的CPU以及 MEM等等资源的消耗上更⼩⼀些。 试想,如果我们的服务器要去记录给每个客户机回馈了什么响应, 是不是会消耗⾮常⼤的资源。 我们说⽆状态协议也是有缺点的,虽然它节省了服务器端的资源, 但是因为不能记录客户机的状态信息(⽐如某些站点的登录状态),会 对⽤户造成不太⽅便的使⽤体验。 那么由此⼀来,我们就要去说⼀说⼤家都听说过的⼀个技术,叫做 cookie。 实际上COOKIE本身就是针对了HTTP⽆状态协议的弊端⽽ 出现的。 它可以通过在请求和响应报⽂当中写⼊cookie 信息来控制/记录客户 端的状态。 ⾸先,客户端对服务器发出访问请求,服务器会通过 cookie 技术在 返回给客户端的报⽂当中加⼊⼀个叫做 set-cookie 的⾸部字段信 息。告知客户端你要保存cookie。 然后,客户端再次向服务器端发送访问请求的时候,客户端会在访 问请求的报⽂当中加⼊它存储的 cookie。然后再发送。 这个时候,服务器端在接收到请求之后,会检查客户端它发送的请 求当中有没有夹着cookie值,再跟以前的记录进⾏⽐对,然后确认 ⼀下发送请求的客户端是谁,它之前有什么状态。 四、HTTPS 协议 HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此,HTTPS应运⽽⽣。 HTTPS 的全称为 (HyperTextTransferProtocoloverSecureSocketLayer), HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了 传输过程的安全性。 HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL。 HTTP使⽤明⽂传播,有三⼤⻛险 (1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。 (2)篡改⻛险(tampering):第三⽅可以修改通信内容。 (3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通 信。 SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到: (1)所有信息都是加密传播,第三⽅⽆法窃听。 (2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。 (3)配备身份证书,防⽌⽌身份被冒充。 1、SSL层 SSL层(SecureSocketsLayer安全套接字协议),现在也被称为 TLS。 我们都知道SSL中的保证安全的加密通信是⼀次对称加密和⾮对称加 密的结果,但是客户端与服务端建⽴通信的前提就是服务端是否能 够被证书发型机构CA授予证书,那证书是怎么样的呢? 以下是证书类型介绍: SSL:SecureSocketLayer,安全套接字层,http层下新增加的这 ⼀层构成了https。 TLS:TransportLayerSecurity,同样是为了保证数据安全的加 密协议层,是SSL的增强版, SSL 有1.0,2.0,3.0版本,TLS ⽬前 1.0,1.1,1.2,1.3,TLS 的 1.0 版本就是 SSL 的 3.0。 Key:https 中有公钥和私钥,⽤公钥加密的内容,可以使⽤私 钥解密,反之亦然,不过我们平常所说的key⽂件是指私钥⽂ 件。 CSR:CertificateSigningRequest 证书签名请求,⾥⾯包含公钥 等个体信息,这个发给公证机构作为申请,通过这个公证机构颁 发证书给你。 CRT:certificate 证书⽂件,是证书机构颁发的保证安全通信的 ⽂件,由域名、公司信息、序列号和签名信息等组成。 CER:也是证书⽂件,和CRT相⽐只是缩写不同,CRT缩写常⻅ 于类uninx系统,CER缩写常⻅于 Windows 系统。 X.509:这⾥特指颁发的证书的格式,⽽其根据不同的编码格式 分为PEM和DER。 a. PEM-PrivacyEnhancedMail,打开看⽂本格式,以“----- BEGIN "开头,"----- END”结尾,内容是 BASE64 编码。 Apache 和 NGINX 服务器偏向于使⽤这种编码 格式,这种也是 我们所常⻅的。 b. DER-DistinguishedEncodingRules,打开是⼆进制格式,不 可读。Java和Windows服务器偏向于使⽤这种编码格式。CA:CatificateAuthority证书颁发机构,它的作⽤就是给各个⽤ 户签发证书等,⽐如说 Symantec、Comodo、Godaddy、 GolbalSign和Digicert等。 openssl:相当于SSL的⼀个实现,如果把SSL规范看成OO中的 接⼝,那么OpenSSL则认为是接⼝的实现,个⼈理解openssl是 作为针对SSL/TLS的⼀个⼯具,包括对证书的解析,个⼈颁发, 证书编码转化等。

2、HTTPS 安全通信的四⼤原则

(1)机密性 就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数 据,那么这个加密的数据对⽅不能轻易获得。

(2)完整性 是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据 是⼀个完整的数据内容。

(3)身份认证 数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的 ⼈。可以解决冒充这样的⻛险。

(4)不可否认性 不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且 签名按⼿印,如此⼀来就不能抵赖。

3、通信原理

(1)对称加密 对称加密:通信双⽅都使⽤同⼀把密钥给报⽂进⾏加密和解密。 (密码验证) 对称加密具备速度快,性能⾼的特点。是HTTPS的最终采⽤的加密 ⽅式。 对称加密的通信过程中双⽅都需要同样的密钥。

(2)⾮对称加密 ⾮对称加密:解决单项对称密钥的传输问题。就是加密和解密的 双⽅使⽤不同的密钥。(密钥对验证) 公钥, 是可以公开的。私钥,不能公开。 公钥加密的内容只有私钥可以解密,私钥加密的内容只有公钥可 以解密。

(3)对称加密和⾮对称加密的综合版本

1. 某⽹站拥有⽤于⾮对称加密的公钥A、私钥A。

2. 浏览器向⽹站服务器请求,服务器把公钥A明⽂给传输浏览器。

3. 浏览器随机⽣成⼀个⽤于对称加密的密钥X,⽤公钥A加密后传 给服务器。

4. 服务器拿到后⽤私钥A解密得到密钥X。

5. 这样双⽅就都拥有密钥X了,且别⼈⽆法知道它。之后双⽅所有 数据都通过密钥X加密解密即 可。 成功!HTTPS基本就是采⽤了这种⽅案。 还有⼀个问题,公钥在传输过程中,也有可能被劫持替换,解决办 法是数字证书。

(3)CA 认证机构,称为CA。服务端可以向CA申请认证证书,在证书上附加 公钥信息,然后发布给客户端。服务端在申请证书的过程中,会提 交⽐如DNS主机名等⽹站信息,CA会根据这些信息⽣成证书。

(4)证书 如此⼀来,客户端拿到证书之后,就可以获得证书上⾯我们附带的 公钥,再⽤这个公钥加密‘对称加密的密钥’传递给服务端。

(5)数字签名 证书的真假可以通过数字签名来验证。数字签名就相当于学历证书 上的证书编号。

标签:web,HTTP,请求,协议,证书,http,加密,服务器,客户端
From: https://blog.csdn.net/m0_72009757/article/details/140778337

相关文章

  • 基于javaweb的家乡旅游网站的设计与实现
    摘 要随着社会经济的持续发展和人民生活水平的提高,旅游已经成为人们生活中不可或缺的重要组成部分。同时,互联网的普及,让人们对于旅游信息的获取逐渐转移到线上平台。基于javaweb的家乡旅游网站作为一个便捷的家乡旅游资讯信息的平台,为用户提供了实时且全面的家乡旅游信息,包......
  • 使用Spring WebSocket实现实时Java应用
    使用SpringWebSocket实现实时Java应用大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们来探讨一下如何使用SpringWebSocket实现实时Java应用。WebSocket是一种在客户端和服务器之间建立长连接的协议,适用于需要实时数据更新的场景。Spring提供了对......
  • 微信小程序,web,uniapp-vue前端图片压缩思路-------uniapp-nvue如何压缩
    uniapp官方提供的压缩接口,只支持jpg的压缩,所以,直接放弃在非nvue的页面中,统一使用canvas获取图片信息,并重新绘制。存在一个问题,canvas必须指定宽高,不能动态给定,所以可能存在一些问题。nvue页面,又无法使用canvas,或者说,性能不是很好。一个隐藏的canvas只做图片处理使用,应该不会影......
  • web_week6
    代码审计给你shell考点:1.fuzz2.爆破3.取反绕过解题过程:step1:在源代码上看到/?view.source和flag在flag.txt里面访问/?view.source<?php//It'snoneedtousescanner.Ofcourseifyouwant,butuwillfindnothing.error_reporting(0);include"config.php";......
  • SSM整合Web工程报错Unable to locate Spring NamespaceHandler for XML schema namesp
    博主在启动Tomcat后报错这个 org.springframework.beans.factory.parsing.BeanDefinitionParsingException:Configurationproblem:UnabletolocateSpringNamespaceHandlerforXMLschemanamespace[http://www.springframework.org/schema/tx]Offendingresource:cl......
  • springboot+vue基于web点餐小程序的个性化推荐演示录像【程序+论文+开题】-计算机毕业
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,餐饮业正经历着前所未有的变革。传统餐饮模式逐渐向智能化、数字化转型,其中,基于Web的点餐小程序凭借其便捷性、高效性和广泛的用户覆盖,成为了餐饮行业的重要服务形式。然而,在海量美食信息与多样化消费者需求......
  • springboot+vue基于web的中草药信息管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着中医药在全球范围内的日益普及与认可,中草药作为中医药体系的核心组成部分,其信息的系统化、标准化管理显得尤为重要。然而,当前市场上缺乏一个全面、便捷且基于Web的中草药信息管理系统,导致中草药信息零散、不易获取,既不利于中医药......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-17 I2C通信协议原理
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述    我们知道I......
  • GIS场景零代码拖拽式编辑,支持TMS/WMS/WMTS等多种GIS协议
    在三维GIS领域,编辑场景和处理影像数据通常是一个复杂且费时的过程,但现在有了山海鲸可视化,这一切都变得简单有趣。这款免费可视化工具为您提供了零代码拖拽式编辑的体验,让您无需编程知识就能轻松创建和优化GIS场景。通过直观的界面,您只需动动鼠标就能完成从场景编辑到效果添加的一......
  • zookeeper、kafka单机版安装 https://www.cnblogs.com/dogleftover
    zookeeper、kafka单机版安装前提已经安装了jdk1.8、zookeeper3.6.3主机名:master映射:192.168.128.129master安装zookeeper单机版#将apache-zookeeper-3.6.3-bin.tar.gz上传到服务器#解压tar-zxvfapache-zookeeper-3.6.3-bin.tar.gz#移动mv/home/apache-zookeeper-3......