Web服务器基础介绍

目录

Web服务器基础介绍

一、HTML是什么?

二、静态网页和动态网页

1、静态网页

2、动态网页

3、动态网页语言

PHP

JSP

Python

Ruby

三、HTTP协议

1、HTTP协议是什么?

2、HTTP请求访问的方法

3、GET与POST比较

GET:

POST:

4、HTTP状态码

5、HTTP请求访问的完整过程

6、请求报文

7、响应报文


Web服务器基础介绍

一、HTML是什么?

超文本标记语言,编程语言,主要负责实现页面的结构;HTML叫:超文本标记语言,是一种规范,也是一种标准,通过标记符号来标记要显示的网页中的各个部分。网页本身是一种文本文件,通过在文本文件中添加标记符号,可以告诉浏览器如何显示其中的内容。

HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为html或者htm即可

二、静态网页和动态网页

1、静态网页

在网站设计中,纯粹HTML格式的网页通常被称为静态网页,静态网页标准的HTML文件,他的文件拓展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。

2、动态网页

所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。
动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。

3、动态网页语言

早期的动态网页

主要采用通用网关接口 CGI(Common Gateway Interface)技术,虽然 CGI 技术已经发展成熟而且功能强大, 但由于编程困难、效率低下、修改复杂,所以有逐渐被新技术取代的趋势

PHP


即 Hypertext Preprocessor(超文本预处理器),它是当今 Internet 上最为火热的脚本语言,其语法借鉴了 C、Java、PERL 等语言,但只需要很少的编程知识你就能使用 PHP 建立一个真正交互的 Web 站点。

JSP


即 Java Server Pages(Java 服务器页面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技术,是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术。

Python


是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的大型项目开发。

Ruby


是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20 世纪 90年代由日本人松本行弘(Yukihiro Matsumoto) 开发,遵守GPL 协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。

三、HTTP协议

1、HTTP协议是什么?

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。

服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。

注意:HTTP已经演化出了很多版本,他们中的大部分都是向下兼容的

HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。
HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源。

2、HTTP请求访问的方法

HTTP支持几种不同的请求命令,这些命令都被称为HTTP方法

每条HTTP请求报文都包含一个方法,告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。

最常用的方法是GET、POST、PUT。

①GET           对服务器资源获取的简单请求

②PUT           向服务器提交数据,以修改数据

③DELETE    删除服务器上的某些资源

④POST        用于发送包含用户提交数据的请求

⑤HEAD        请求页面的首部,获取资源的元信息

GET请求会向数据库发索取数据的请求,从而来获取信息,该请求不会产生副作用。无论进行多少次操作,结果都是一样的

PUT请求是向服务器端发送数据的,从而改变信息,无论进行多少次PUT操作,其结果并没有不同,与GET不同

DELETE请求顾名思义,就是用来删除某一个资源的。

3、GET与POST比较

GET:

①从指定的服务器上获取数据

②请求可以被缓存

③请求会被保存在浏览器的浏览记录里

④请求有长度的限制

⑤主要用于获取数据

⑥查询的字符串不会显示在url后缀中,不安全

POST:

①提交数据给指定服务器处理

②请求不能被缓存

③请求不会保存在浏览器的浏览记录里

④请求没有长度限制

⑤查询的字符串不会显示url中比较安全

4、HTTP状态码

HTTP状态码是用来表示网页服务器HTTP响应状态的3位数字代码,当浏览器请求某一url时,服务器根据处理情况返回响应的处理状态。

状态码首位已定义范围分类
1xx100-101    信息提示
2xx200-206    成功
3xx300-305    重定向
4xx400-415客户端错误
5xx500-505服务器错误

http常见状态码:

状态码    功能描述
200    一切正常
301    永久重定向,将缓存记录在浏览器中
302    临时重定向,没有缓存,每次都要重定向
401    用户名或密码错误
403    禁止访问(客户端IP地址被拒绝)
404    请求的文件不存在
414    请求URL头部过长
500    服务器内部错误
502    无效网关
503    当前服务不可用
504    网关请求超时

5、HTTP请求访问的完整过程

1.建立连接

2.接收请求

3.处理请求

4.访问资源

5.构建响应报文

6.发送响应报文

7.记录日志

6、请求报文

①请求行:请求行由请求方法,url以及协议版本三部分组成。

②请求头:请求头为请求报文添加了一些附加信息,由名\值对组成,每行一对,名和值之间使用冒号分隔

③空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。

④请求体:请求体是请求提交的参数,get方法已经在url中指明了参数,所以提交时没有数据。post方法提交的参数在请求体中。

常用的请求头:

请求头描述
Host接受请求的服务器地址,可以是Ip:端口号,也可以是域名
User-Agent发送请求的应用程序名称
Connection指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言

7、响应报文

①状态行:状态行由协议版本,状态码,状态码描述三部分组成。

②响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。

③空行:响应头部的最后会有一个空行,表示响应头部结束。

④响应体:服务器返回的相应HTML数据,浏览器对其解析后显示页面

常见相映头:

响应头描述
Server服务器应用程序软件的名称和版本
Content-Type响应正文的类型(是图片还是二进制字符串)
Content-Length 响应正文长度
Content-Charset响应正文使用的编码
Content-Encoding响应正文使用的数据压缩格式
Content-Language 响应正文使用的语言

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

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

相关文章

Linux网络编程(三-UDP协议)

目录 一、UDP概述 二、UDP的首部格式 三、UDP缓冲区 四、基于UDP的应用层协议 五、常见问题 一、UDP概述 UDP(User Datagram Protocol,用户数据协议报)是传输层协议,提供不可靠服务,其特点包括: 无连接:知道对端…

CSP-202309-3-梯度求解

CSP-202309-3-梯度求解 作为一个算法小白,本人第一次接触大模拟的题,本题的算法参考自:【CSP】202309-3 梯度求解 解题思路 1.输入处理 getchar();:从标准输入读取一个字符。这里它的作用可能是用来“吃掉”(消耗&a…

Kafka_04_Topic和日志

Kafka_04_Topic和日志 Topic/PartitionTopicPartition 日志存储存储格式日志清理删除压缩 Topic/Partition Topic/Partition: Kafka中消息管理的基础单位 Topic和Partition并不实际存在(仅逻辑上的概念) 如: Topic和Partition关系 // 每个日志文件可对应多个日志分段, 其还可…

缓存篇—缓存击穿

在很多场景下,我们的业务通常会有几个数据会被频繁地访问,比如秒杀活动,这类被频地访问的数据被称为热点数据。 如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接…

《UE5_C++多人TPS完整教程》学习笔记22 ——《P23 记录加入的玩家(Couting Incoming Players)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P23 记录加入的玩家(Couting Incoming Players)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主&#xff…

前端面试问题(jwt/布局/vue数组下标/扁平化/菜单树形/url api/新版本)

前端面试问题(jwt/布局/vue数组下标/扁平化/菜单树形/url api/新版本) 1. jwt鉴权逻辑 前端 JWT 鉴权逻辑通常涉及在发起请求时携带 JWT,并在接收到响应后处理可能的授权问题。 1. 用户登录: 用户提供凭证: 用户在登录界面输入用户名和密码…

如何使用Docker部署MongoDB并结合内网穿透实现远程访问本地数据库

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 …

2024最佳住宅代理IP服务商有哪些?

跨境出海已成为了近几年的最热趋势,大批量的企业开始开拓海外市场,而海外电商领域则是最受欢迎的切入口。新兴的tiktok、Temu,老牌的Amazon、Ebay,热门的Etsy、Mecari等等都是蓝海一片。跨境入门并不难,前期的准备中不…

深入理解文件查看命令:cat、more、less、tail、head

在Linux系统中,有许多命令用于查看文件的内容,其中包括cat、more、less、tail和head。这些命令提供了不同的方式来浏览文本文件,适用于各种查看需求。在本篇博客中,我们将深入介绍这些命令,并通过示例演示它们的用法。…

Spring Boot打war包部署到Tomcat,访问页面404 !!!

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 Spring Boot打war包部署到Tomcat,访问页面404 !!!解决办法:检查Tomcat版本和Jdk的对应关系,我的Tomcat是6.x&#x…

Sping基础篇----掌握Sping的控制反转/依赖注入的概念【实战案例总结】

作为一名对技术充满热情的学习者,我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代,我远非专家,而是一位不断追求进步的旅行者。通过这篇博客,我想分享我在某个领域的学习经验,与大家共同探讨、共…

SMMU介绍

SMMU(System Memory Management Unit)是一种硬件设备,其作用是在虚拟地址空间和物理地址空间之间提供地址转换的功能。它通常用于处理虚拟化环境中的 I/O 设备,例如虚拟机中的设备访问或者容器环境中的设备隔离。 SMMU 的主要作用…

KVM虚拟机的克隆方式

话不多说,直接上操作 首先确定我们要克隆的模板机器,这样可以方便我们后续克隆许多机器 IP获取最好就是dhcp模式,这样克隆出来的机器就不需要自己再去改ip了 确定需要克隆的模板机以后,先关机再执行克隆操作 virsh shutdown ser…

【SiamFC】《Fully-Convolutional Siamese Networks for Object Tracking》

ECCV 2016 Workshops 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 The OTB-13 benchmark5.3 The VOT benchmarks5.4 Dataset size 6 Conclusion(own)/ Future wo…

Android系统启动流程

android的启动流程是从底层开始进行的,具体如下所示: Android是基于Linux内核的系统,Android的启动过程主要分为两个阶段,首先是Linux内核的启动,然后是Android框架的启动。 可以将Andorid系统的启动流程分为以下五个…

【QT 5 +Linux下软件桌面快捷方式+qt生成软件创建桌面图标+学习他人文章+第二篇:编写桌面文件.desktop】

【QT 5 Linux下软件桌面快捷方式qt生成软件创建桌面图标学习他人文章第二篇:编写桌面文件.desktop】 1、前言2、实验环境3、自我学习总结-本篇总结1、新手的疑问,做这件事目的2、了解.desktop3、三个关键目录以及文件编写1、目录:/opt/2、目录…

【鸿蒙 HarmonyOS 4.0】开发工具安装

一、准备开发环境 1.1、安装IDE 鸿蒙应用开发需要使用配套的IDE——HUAWEI DevEco Studio。 DevEco Studio基于IntelliJ IDEA Community(IDEA社区版)构建,为鸿蒙应用提供了一站式开发环境,集成了开发、运行、调试以及发布应用的…

【leetcode刷题之路】面试经典150题(3)——哈希表+区间

文章目录 5 哈希表5.1 【哈希表】赎金信5.2 【数学】同构字符串5.3 【数学】单词规律5.4 【哈希表】有效的字母异位词5.5 【哈希表】字母异位词分组5.6 【双指针】两数之和5.7 【数学】快乐数5.8 【哈希表】219. 存在重复元素 II5.9 【数学】最长连续序列 6 区间6.1 【数学】汇…

Stable Diffusion 模型分享:AstrAnime(Astr动画)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五 下载地址 模型介绍 AstrAnime 是一个动漫模型,画风色彩鲜明,擅长绘制漂亮的小姐姐。 条目内容类型大模型…

fastjson解析自定义get方法导致空指针问题

背景 为了在日志中把出入参打印出来,以便验证链路和排查问题,在日志中将入参用fastjson格式化成字符串输出,结果遇到了NPE。 问题复现 示例代码 public static void main(String[] args) {OrganizationId orgId new OrganizationId();N…