Web基础与HTTP协议

一、web基础

web:通俗地说就是我们所说的网页,打开网站展示的页面。(专业地说:全球广域网,万维网,world wide web)

1.1 分布式图形信息系统

分布式:计算机系统或者应用程序分布在多台独立的计算机或者服务器上。通过计算机网络互相通信和协作,共同完成任务,或者共同对外提供一致的服务。分布式设计的目标:把工作负载分散 到多个节点上。每个节点既是属于一个整体,也是一个独立的运行体。这种设计提供了高可用架构,允许分布式节点的服务器出现故障。

集群:集群建立在分布式的基础之上,把多台计算机或者服务器连接在一起,作为一个整体,形成一个单一的计算资源 。也是通过网络连接,共享任务和资源负载,实现高性能高可用。同一集群中的计算机或者服务器性能基本一致,运行的服务或者应用程序都一致。

集群的目标:集群可以通过增加节点和减少节点实现弹性伸缩,提高处理能力和容量。

数据中心,web服务器都是处于集群、大数据处理等等。

1.2 web的组成结构

网页 :纯文本格式的一个文件,使用HTML语言(超文本标记语言)写成,是一种规范,也是一种标准。通过标记符号来显示网页中的各个部分。

一般来说,我们访问的页面,都是以.html或者.htm结尾,也是网站的首页。

浏览器把HTML语言进行翻译,形成用户看到的页面。

网站 :由多个页面组成,是一个网页的结合体。

域名 :访问网站或者浏览页面时输入的地址(网址)。

http \ https :用来传输网页的通信协议。是一种客户端和服务端之间通信、交互的标准和规范。

URL :万维网的寻址系统,是网站在互联网上的唯一标识。

超链接 :超链接由 <a> 元素定义,把网站中的不同网页连接起来。

发布 :把制作好的网页部署到互联网上,可以分为内和外。

  • 内部访问 :不提供互联网的对外访问,只能内部的局域网访问。
  • 外部访问 :互联网上公开的页面,所有人都可以访问的网页。

web1.0 :网页编辑好之后,用户直接阅读内容,用户无法对页面进行编辑、更改、创建其他内容。------单向的。

web2.0 :用户也是访问编辑好的页面,但是这个页面用户可以对其进行二次开发,包括分享、弹幕、点赞、送礼等等,都是web2.0的新特征。------开放的。

1.3 静态页面和动态页面

静态页面:

静态页面就是标准的HTML文件,文件的扩展名.html .htm

纯文本、图像、声音、动画组成的一个页面。

网站建设的基础,早期的网站都是静态页面,没有后台数据库,没有其他的程序,也没有可以交互的页面。

更新比较麻烦,适用于展示型的网站,或是更新内容比较少的网站。

静态页面的URL地址是固定的,且内容相对稳定,容易被搜索引擎检索到。

页面的浏览速度比较快,没有后台程序,不需要连接数据库,页面打开比较快。

动态页面:

动态页面的URL地址是不固定的,用户可以和后台进行交互(主要指数据库)。

动态页面的URL页面里有一个号。

动态页面使用的是PHP,JSP,Python,Ruby等语言。

动态页面的特点:

  • 交互性:用户可以对网站发布的页面进行二次开发。
  • 自动更新。
  • 页面的内容会实时地发生变化。

区别:

  • 静态页面:只能看
  • 动态页面:交互。

二、HTTP协议和返回码

HTTP:超文本传输协议

HTTPS:加密的超文本传输协议

2.1 HTTP协议

HTTP 0.9HTTP 1.0 基本淘汰,现在使用的主流是HTTP 1.1

HTTP 2.0 :是HTTP 1.1 的升级版,加密的协议,新一代的加密协议。

HTTP 1.0 和 HTTP 1.1 的区别

  1. 缓存机制
  • 缓存可以把用户的一些行为和操作保存下来,可以保留这些状态,不需要和web服务器进行额外的通信,提高了访问效率。
  • 缓存有的保存在本地,有的保存在web服务器,现在的缓存基本上保存在用户的本机(一般由浏览器保存)。
  • 缓存的保留时间,一般是30天到180天。一般的网站是30天左右。
  • HTTP 1.0 只有一种缓存策略, HTTP 1.1 引入了更多的缓存策略。
  1. 长连接

    HTTP 1.1 支持长连接,在一个TCP连接上可以传送多个HTTP请求和响应,可以一次性获取页面所有的内容。

  2. 带宽的优化和网络连接的使用

    HTTP 1.0 一次只能获取一个对象,其他对象还要继续建立连接获取数据。

    HTTP 1.1 只要建立了连接,除非数据发送完毕,否则不需要为了其他的资源专门再建立额外的连接,大大节省了带宽的使用。

2.2 HTTP的工作方式

  • 请求------------客户端发起
  • 响应------------服务端发起
2.2.1 请求

请求的方式:GET POST

请求的内容:

请求头:

请求体:

  • Accept:客户端获取的页面
  • Accept-Encoding :客户端可以接受的编码格式
  • Accept-Language :客户端可以接受的语言格式
  • Cache-Control :客户端需要缓存的时间
  • Connection: keep-alive :客户端通知服务端,服务端在数据传送完毕之后,不要马上关闭连接,让连接保持一段时间(60s,120s,180s)。
  • Host :表示客户端请求的IP和端口
  • User-Agent :客户端请求的工具,用什么浏览器发起请求,发起请求的系统是什么
  • 以及其他网页设置
2.2.2 响应

响应的内容:

响应头:响应体:

Connection: keep alive :响应客户端的连接方式

Content-Encoding :响应客户端的编码方式

Content-Type :响应客户端的类型,发送数据的类型

Date :响应发生的时间

Server : 使用web服务的软件和版本

Strict-Transport-Security :响应客户端的缓存时间

Request Method: GET :客户端的请求方式是get

Status Code :请求收到之后,服务端对请求的响应的状态码

  • 1xx :100-101 信息提示
  • 2xx :200-206 成功
  • 3xx :300-305 重定向和缓存
  • 4xx :400-415 客户端错误(客户端请求的内容或者页面不存在)
  • 5xx :500-505 服务端错误,web服务软件本身出了故障,无法响应

2.3 HTTP常见的状态码

200 :OK,请求成功

301 :永久重定向,请求的页面会永久跳转到其他的页面

302 :临时重定向,一般网站维护时使用

304 :访问的是本地缓存

403 :用户的请求禁止访问

404 :用户请求的网页不存在

500 :内部服务错误,一般是软件层面,也可能是硬件故障,也可能是防火墙

502 :Bad-Gateway,无效网关(一般是防火墙限制了转发功能)

503 :service unavailable,服务不可用

504 :Gateway timeout,网关请求超时

2.4 GET和POST

get就是向服务发送请求。请求不带任何参数,由http协议自行约定。

post也是发数据,也是依照http协议,post会改变服务器的数据。post之后在数据库中多了一条数据,或者对原数据进行了修改。

二者的区别:

  • get的请求可以被缓存,post没有缓存。
  • get的请求记录会保存在浏览记录(cookie),post不会被保存。
  • get就是获取数据,post会修改数据。
  • get的请求长度是有限制的,而且请求的字符串会显示在URL中。post的请求没有长度限制,而且字符串也不在URL中显示。

动态页面文件的后缀一般是 .jsp .js .php

相关推荐
hackeroink1 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者3 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-3 小时前
验证码机制
前端·后端
燃先生._.4 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
高山我梦口香糖5 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
m0_748235245 小时前
前端实现获取后端返回的文件流并下载
前端·状态模式
m0_748240256 小时前
前端如何检测用户登录状态是否过期
前端
black^sugar6 小时前
纯前端实现更新检测
开发语言·前端·javascript
njnu@liyong6 小时前
图解HTTP-HTTP报文
网络协议·计算机网络·http