web基础知识(一)
一、web工作机制
用户通过web浏览器,输入正常的URL(Union Resource Location),浏览器向web服务器发送请求,如果所请求(request)的是静态的HTML文件,则不经过其他处理,会直接进行返(response)给用户,当用户发送的请求为动态网页(比如:php,asp,jsp,等等),则会先经过web服务器,然后再通过中间件服务器进行处理之后,在到数据库中查找数据是否存在等操作,如果存在则将会将这些数据和html,xml,php,asp等进行组合之后形成用户所需要的页面返回给用户,网页文件是用文本描述的,HTML格式,在用户浏览器中有个解释器,把这些文本描述的页面恢复成图文并茂、有声有影的可视页面。
web工作机制---中间件服务器
由于静态网页不具有交互性,只能单向给用户展示信息。随着web的发展,信息要双向流动,产生交互的需求,也就是动态网页的概念;所谓动态就是利用flash、php、asp、Java等技术在网页中嵌入一些可运行的脚本,用户浏览器在解释页面时,遇到脚本就启动运行它。这些脚本可以嵌入在页面中,如JS等,也可以以文件的形式单独存放在Web服务器的目录在、里,如.asp、.php、.jsp文件等。这样功能性的脚本越来越多,形成常用的工具包,单独管理,web业务开发时,直接使用就可以了,这就是中间件服务器,他实际上是web服务器处理能力的扩展
脚本的使用让web服务模式有了双向交流的能力,web服务模式也可以像传统软件一样进行各种事物处理,如编辑文件、利息计算、提交表单等,web架构的适用面大大扩展。
web工作机制---数据库的使用
静态网页与脚本都是事前设计好的,一般不经常改动,但网站上很多内容需要经常的更新,如新闻、博客文章、互动游戏等这些变动的数据存在静态的程序中显然不适合,传统的办法是数据和程序分离,采用专业的数据库。web开发者在web服务器后边增加一个数据库服务器,这些经常变化的数据存进数据库,可以随时更新。当用户请求页面时,脚本根据用户请求的页面,涉及到动态的地方,利用SQL数据库语言,从数据中读取最新的数据,生成“完整”页面,最后送给用户。
二、HTTP协议(HyperText Transfer Protocol)
1. HTTP(超文本传输协议)
它于1990年提出,当前版本为HTTP/1.1
HTTP设计用来将超文本标记语言(HTML)文档从web服务器传送到web浏览器
HTTP是一种请求和响应协议:客户机发送请求,服务器对请求给出回应
HTTP使用可靠的TCP连接,默认使用80端口
2.HTTP协议的特点
支持C/S模式
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
HTTP协议是无状态协议。无状态是指协议对于事物处理没有记忆功能。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这些可能导致每次连接传送的数据量增大。另一面,在服务器不需要先前信息时它的应答就较快。
3.HTTP协议---URL
4.HTTP协议---协议结构
5.HTTP协议---Request
HTTP请求由请求行、请求头、请求正文三部分组成
-请求行:方法,URL,协议/版本(Method-URI-Protocol/Version)
-请求头(Request headers)
-请求正文(Entity body)
6.HTTP协议---Response
HTTP响应包含三个部分:状态行、响应头、响应正文
-状态行:协议状态代码描述(Protocol-Status code Description)
HTTP-Version Status-Code Reason-Phrase
HTTP-Version 表示服务器HTTP协议的版本;
Status-Code 表示服务器发回的响应状态代码
Reason-Phrase 表示状态代码的文本描述
-响应头(Response headers)
-响应正文(Entity body):服务器返回的资源的内容
7.HTTP协议---请求方法
8.HTTP协议---常见响应码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!