| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> JavaWeb详解(第一篇)之Web入门 -> 正文阅读 |
|
[网络协议]JavaWeb详解(第一篇)之Web入门 |
JavaWeb详解(第一篇)之Web入门1、JavaWeb概述? ? Internet上供外界访问的Web资源分为:静态web资源、动态web资源。 ? ? 静态web资源(如html 页面、css):指web页面中供人们浏览的数据始终是不变。 ? ? 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。常用动态web资源开发技术:JSP/Servlet、ASP、PHP等,在Java中,动态web资源开发技术统称为Javaweb。 ? ? 我们绝大多数的Web应用都是基于HTTP来进行开发的。我们对Web的操作都是通过HTTP协议来进行传输数据的。HTTP(超文本传送协议)是在客户程序(如浏览器)与服务器(WWW)程序之间进行交互所使用的协议。HTTP是面向事务的应用层协议,它使用TCP连接进行可靠传输,服务器默认监听在80端口。 ? ? 简单来说,HTTP协议就是客户端和服务器交互的一种通迅的协议(格式)。HTTP的诞生主要是为了能够让文档之间相互关联,形成超文本可以互相传阅。可以说,Http就是Web通信的基础。 2、HTTP概述2.1、HTTP基础概念? ? 计算机通信诞生之初,系统化与标准化未受到重视,不同厂商只出产各自的网络来实现通信,这样就造成了对用户使用计算机网络造成了很大障碍,缺乏灵活性和可扩展性。为解决该问题,ISO(国际标准化组织)制定了一个国际标准OSI(开放式通信系统互联参考模型),也称为七层模型,但是仅仅是理论基础。实际上大多人都是使用TCP/IP的分层结构。 ? ? 分层的目的就是为了将困难的问题简单化,有助于我们理解且将不同层次处理的问题进行解耦。TCP/IP网络模型,将网络分为:网络接口层(网络访问层)、网络层、传输层、应用层。 ? ? TCP/IP协议族是一组协议的集合,也叫互联网协议族,用来实现互联网上主机之间的相互通信。TCP/IP并非ISO指定,是由IETF(国际互联网工程任务组)建议、致力推进标准化的一种协议,现已成为业界标准协议。? ? ? 而HTTP协议是在最上层,也就是应用层。也是最贴近我们开发Web软件的一个层次。 2.2、Web通信概述? ? 在Web通信的过程中,不仅仅是需要HTTP协议的,还会涉及到其他的协议的。比如:DNS、FTP等等;HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1)建立TCP连接、2)Web浏览器向Web服务器发送请求行、3)发送请求头、4)(服务器)发送状态行、5)发送响应头、6)发送响应数据->7)断TCP连接 2.2.1、HTTP1.0和HTTP1.1的区别? ? 在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。如果容量很少的文本传输是没有问题的。但是如果我们访问一个网页,该网页有非常多的图片。请求一个图片也算一个HTTP请求了。这样非常浪费资源。 ? ? HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 ? ? HTTP1.1版本新特性: ? ? 1)默认持久连接:只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求; ? ? 2)管线化:客户端可以同时发出多个HTTP请求,而不用一个个等待响应,就能够继续发送第二次请求 ? ? 3)断点续传:利用HTTP消息头使用分块传输编码,将实体主体分块传输。 注:http1.0 称为短连接,http1.1 称为长连接。所谓长和短指的是:持续时间,长连接30s,短连接是发送完数据就断掉。 2.2.2、DNS域名系统? ? 我们访问网站,其实都是通过IP来访问的,但是成千上万的网站都需要记忆其服务器的IP,那实在太难了。人们为了便于记忆,于是就出现了域名。(如:www.baidu.com) ? ? 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。计算机通信只认的是我们的主机地址(IP),有了目标后就需要和目标之间建立连接。 2.2.3、TCP协议? ? TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 ? ? 传输连接有三个阶段,即:连接建立、数据传送、连接释放。 ? ? TCP协议采用了三次握手的方式来保证数据的准确运输,采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。这样也保证了数据传输是可靠的。连接成功了就可以开始传输数据了。 2.2.4、HTTP协议? ? HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。 ? ? HTTP的报文结构有两类报文:请求报文、响应报文。 2.2.5、Http请求报文? ? 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求。一个完整的请求包括如下内容:一个请求行、请求头(首部字段)、空行、实体主体,其中请求头和实体内容是可选的,请求头和实体内容之间用空行隔开。 ? ? 请求行:用于描述客户端的请求方式、请求资源名称以及使用的HTTP协议的版本号 ? ? 请求头:客户端请求哪台主机以及客户端的一些环境信息 HTTP请求中的常用头:
注:反盗链,可以用于控制越级访问页面,不允许重非指定的页面进入
2.2.5.1、请求方式 ? ? 我们知道常用的提交方式有POST和GET方法,其实请求方式还有:HEAD、OPTIONS、DELETE、TRACE、PUT ? ? GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。 ? ? POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。 ? ? PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。 ? ? HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。 ? ? DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。 ? ? OPTIONS:查询相应URI支持的HTTP方法。 ? ? 我们也知道GET是用来获取数据的,POST是用来提交数据的。不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上,客户端通过这两种方式都可以带一些数据给服务器。 例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1 ? ? GET方式的特点:GET方式没有实体主体的,它都是在URL地址后附带的参数的,其数据容量不能超过1K。 ? ? POST方式特点:可以在请求的实体主体中向服务器发送数据,传送的数据量无限制。 2.2.5.2、Http响应报文 ? ? 一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、响应头、空行以及实体主体 ,其中的一些响应头和实体内容都是可选的,响应头和实体内容之间要用空行隔开。 ? ? 状态行:用于描述服务器对请求的处理结果,格式: HTTP版本号 状态码 原因叙述<CRLF>,例如:HTTP/1.1 200 OK 或者 HTTP/1.1 302 ? ? 响应头:用于描述服务器的基本信息以及数据的描述,服务器通过这些数据的描述信息可以通知客户端如何处理回送的数据。 ? ? 实体主体:代表服务器向客户端回送的数据。 HTTP响应中的常用头:
扩展:Refresh的应用 ? ? 我们经常看到这种页面,就是一个网站跳转到另外一个页面,如果几秒钟未跳转请点击链接。
案例效果: 2.2.6、Http响应状态
3、HTTPS简述HTTP在安全上是不足的:
? ? 其实HTTPS就是披着SSL的HTTP。HTTPS 需要CA机构的颁发的SSL证书,HTTPS 的标准端口是443,而HTTP 标准端口是80。 3.1、HTTPS工作原理简诉? ? 在tcp建立之后,在正式http请求(发送url)之前,会有一个ssl的握手过程。
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:50:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |