web基础与HTTP协议

发布于:2024-07-02 ⋅ 阅读:(155) ⋅ 点赞:(0)

目录

web概念

web的组成结构

HTTP协议概念

面试题

http的工作方式

nginx

nginx的功能介绍

nginx的文件

nginx的常用命令


web概念

web:就是网页,即打开网站展示的页面(又叫全球广域网或者万维网world wide web)它是分布式图形信息系统

http/https :超文本传输协议/加密超文本传输协议,作用:用来传输网页的通信协议,是一种客户端和服务端之间通信、交互的标准和规范。

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

超链接:超链接把网站中的不同网页连接起来。以a为开头,/a结尾

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

内部访问:不提供互联网的对外访问,只能内部的局域网访问

外部访问:互联网上公开的页面。所有人都可以访问的网页

分布式:计算机系统或者应用程序分布在多台计算机或者服务器上,它们是通过计算机网络互相通信和协议,共同完成任务或者共同对外提供一直的服务。

分布式设计的目标:把工作负载分散到多个节点上,每个节点即是一个整体,也是一个独立运行体。这种设计提供了高可用的架构,允许分布式节点的服务器出现故障

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

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

web的组成结构

一、网页:纯文本格式的文件,它用的是HTML语言(超文本标记语言),它是一种规范,也是一种标准,通过标记符号来显示网页中的各个部分。一般来说我们访问的页面都是.html或者.htm,也是网站的首页。浏览器把html语言进行翻译,形成用户看到的页面。

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

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

静态页面:就是标准的HTML文件,文件的拓展名.html  .htm。它是纯文本,图像、声音、动画等等组成的一个页面。网站建设的基础,早起的网站都是静态页面,没有后台数据库,没有其他的程序,也无法交互的页面。更新起来比较麻烦,展示型的网站,更新内容比较少的网站。静态页面的URL地址是固定的,内容相对稳定,容易被搜索引擎检索。页面的浏览速度比较快,没有后台程序,不需要连接数据库,页面打开比较快。  

动态页面:页面URL不固定,用户可以和后台进行交互(数据库),在动态页面的URL里面有一个符号“?”  动态页面用的是PHP,JSP,Python,Ruby  动态页面.jsp  .js .php为结尾的文件

动态页面的特点:

1.交互性,用户可以对网站发布的页面进行二次创造

2.自动更新

3.页面的内容会实时的发生变化

静态页面和动态页面的区别:静态页面就是看,动态页面就是交互

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

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

HTTP协议概念

目前主流是http1.1     http2.0是新一代的加密协议

面试题

http1.0和http1.1之间的区别:

1.缓存机制   缓存可以把用户的一些行为和操作保存下来,下一次再访问,可以保留这些状态,不需要在和web服务器进行额外的通信,提高了访问的效率。缓存有的是保存在本地,有的是保存在web服务器。缓存基本上都是保存在用户的本机(缓存由路由器保存)缓存的保留时间30-190天,一般网站都是30天

http1.0只有一种缓存策略   http1.1引入了更多的缓存策略

2.长连接

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

http1.0一次一次的获取页面所有的内容

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

http1.0 一次只能获取一个对象,其他对象还要继续的建立连接获取数据

http1.1 只要建立了连接,除非数据发送完毕,否则不需要为了其他的资源专门的再建立额外的连接

http的工作方式

请求——客户端发起

请求的方式(method):get   post 

请求的内容:请求头

                      请求体:method

                                    Accept 客户端可以接受的数据类型

                                    Accept-Encoding  客户端可以接受的编码格式

                                    Accept-Language  客户端可以接受的语言类型

                                    Cache-Control  客户端需要页面缓存的时间

                                    Connection  客户端通知服务端,服务端在数据传送完毕之后,不要马上                                           关闭连接,让连接保持一段时间(60s.120s.180s)

                                    Host:www.csdn.net  表示客户端请求的IP端口

                                    User-Agent  客户端的请求工具,用什么浏览器发起的请求以及发起的系统                                      是什么

响应——服务端发起

响应体:Connection:keep-alive  响应客户端的编码

              Content-Encoding  响应客户端的编码

              Content -type  响应编码的类型,发送数据的类型

              Date  响应时间

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

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

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

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

                                     100-101 信息提示

                                     200-206  成功

                                     300-305  重定向和缓存

                                     400-415  客户端错误(客户端请求的内容或者页面不存在)

                                     500-505  服务端错误 web服务软件本身出了故障,无法响应

http常见的状态码: 200 ok  请求成功

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

                                302  临时重定向   网站维护时使用

                                304  访问的是本地缓存

                                403  用户的请求禁止访问

                                404  用户请求的网页不存在

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

                                面试题:如果出现了500 ,怎么来排查这个错误?

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

                                503  service unavailable  服务不可用

                                505 Gateway timeout  网关请求超时

get方式于post方式的区别:

get就是向服务发送请求,请求不带任何参数,由http协议自行约定,get的请求可以被缓存,get的请求记录会保存在浏览记录(cooike),get就是获取数据,get的请求长度是有限制的,而且请求的字符串会显示在url当中

post也是发送数据,也是依照http协议,post会更改服务器的数据。post之后会在服务器上多一条数据,或者对原数据进行了修改,post的请求没有缓存,post的请求不会被保存,post会修改数据,post的请求没有长度限制,而且字符串也不在url当中显示

nginx

nginx——web服务器

http就是apache,在国内很少

nginx是开源的,是一款高性能,轻量级的web服务软件,稳定性高,而且版本迭代比较快,即修复bug速度比较快,安全性好,消耗资源很低,http的请求并发连接,单台服务器可以支持3万-5万的并发请求(系统资源全部分配给nginx),单个节点的nginx一般支持2万个并发。

nginx的功能介绍

1.静态文件服务:静态页面,可以直接提供静态文件服务(html ,css,jsp)处理静态页面的响应速度很快,效率很好

2.代理:正向代理、反向代理。可以实现负载均衡,高可用和故障转移

3.动态内容处理,nginx并不能直接处理动态请求,可以通过中间件(php/tomcat)把动态请求转发给后端服务器

4.支持加密https

5.可以实现重定向

6.虚拟主机,一个nginx可以配置多个域名和站点

7.nginx自带缓存

8.性能可拓展,处理能力可以随时调整

nginx的应用场景:

1.静态页面

2.转发动态请求

3.反向代理,负载均衡

4.缓存服务

nginx的安装模块:--with-http_ssl_module \ 支持https的加密功能ss/tls

                              --with-http_v2_module \  支持http2.0协议

                              --with-http_realip_module \ 支持nginx获取客户端的真是ip地址

                              --with-http_stub_status_module \ 支持nginx获取访问状态信息的功能

                              --with-http_gzip_static_module \ 支持页面压缩功能

                             --with-pcre \ 支持prce库

                             --with-stream \ 支持4层代理的模块

                             --with-stream_ssl_module \ 支持对tcp连接的加密

                            --with-stream_realip_module 支持从代理协议中获取客户端的真是IP地址

nginx的文件

conf:配置文件目录 nginx.conf主配置文件

html:工作目录  50x.html  默认的访问错误打开的页面  index.html  默认的访问主页

logs:日志目录  访问日志,报错日志

sbin:nginx的二进制启动脚本

nginx的常用命令

nginx -t 检测配置文件的语法是否正确

nginx -v  显示nginx的版本 

nginx -V 显示版本和配置

nginx -s 信号  stop  关闭nginx

                      reload  重新加载nginx(如果更改了nginx配置文件,nginx -s reload 无需重启服)