当前位置: 首页 > news >正文

个人网站设计要求深圳品牌网站推广公司哪家好

个人网站设计要求,深圳品牌网站推广公司哪家好,网站备案注销原因,云南酒店网站建设一、相关介绍#xff1a; 互联网#xff1a;是网络的网络#xff0c;是所有类型网络的母集因特网#xff1a;世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上#xff0c;大家把连接在因特网上的计算机都成为主机。万维网#xff1a;WWW#xff08;world…一、相关介绍 互联网是网络的网络是所有类型网络的母集因特网世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上大家把连接在因特网上的计算机都成为主机。万维网WWWworld wide web万维网并非某种特殊的计算机网络是一个大规模的、联机式的信息贮藏库使用链接的方法能非常方便地从因特网上的一个站点访问另一个站点超链技术具有提供分布式服务的特点。万维网是一个分布式的超媒体系统是超文本系统的扩充基于B/S架构实现。URL万维网使用统一资源定位符Uniform Resource Locator来标志万维网上的各种文档并使每个文档在整个因特网的范围内具有唯一的标识符URL。 HTTP为解决用什么样的网络协议来实现整个因特网上的万维网文档”这一难题就要使万维网客户程序以浏览器为主但不限于浏览器与万维网服务器程序之间的交互遵守严格的协议即超文本传送协议HyperText Transfer Protocol。HTTP是处于应用层的协议使用TCP传输层协议进行可靠的传送。因此需要特别提醒的是万维网是基于因特网的一种广泛因特网应用系统且万维网采用的是HTTP80/TCP和 HTTPS443/TCP的传输协议但因特网还有其他的网络应用系统如FTP、SMTP等等。 HTML:又叫做超文本标记语言是一种规范也是一种标准它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件通过在文本文件中添加标记符可以告诉浏览器如何显示其中的内容。HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑生成超文本标记语言文件只用修改文件名后缀为“.html”或“.htm”即可。 静态网页在网站设计中纯粹HTML格式的网页通常被称为“静态网页”静态网页是标准的HTML文件它的文件扩展名是.htm、.html。静态网页是网站建设的基础早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的与下面将要介绍的动态网页是不同的概念。 动态网页所谓的动态网页是指跟静态网页相对的一种网页编程技术。静态网页随着HTML代码的生成页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然页面代码虽然没有变但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀并且在动态网页网址中有一个标志性的符号——“?”。 动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合以期实现对网站内容和风格的高效、动态和交互式的管理。因此从这个意义上来讲凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。 二.访问浏览器的过程 http请求的完整过程简述 1、域名解析使用DNS协议进行域名解析 2、建立连接发起TCP三次握手 3、发起http请求建立TCP连接成功后浏览器发起http请求 4、响应http请求服务端响应http请求浏览器得到返回response 5、解析response浏览器解析response并请求其它的资源如js、css等 6、浏览器渲染展示页面浏览器根据内核对页面进行渲染展示 7、断开连接TCP四次挥手 三.http 协议通信过程 HTTPHyperText Transfer Protocol超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础设计HTTP最初的目的是为了提供一种远距离共享知识的方式借助多文档进行关联实现超文本连成相互参阅的WWWworld wide web,万维网 四.HTTP 相关技术: 1.WEB开发语言: http Hyper Text Transfer Protocol 应用层协议默认端口 80/tcp 2.WEB前端开发语言 : html: Hyper Text Markup Language 超文本标记语言编程语言主要负责实现页面的结构 CSS: Cascading Style Sheet 层叠样式表 定义了如何显示装扮 HTML 元素比如字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档可以同时改变站点中所有页面的布局和外观。 js: javascript实现网页的动画效果但实属于静态资源 Java和javascript的关系: 周杰和周杰伦的关系 3.MIME MIME : Multipurpose Internet Mail Extensions 多用途互联网邮件扩展 MIME 类型通常仅包含两个部分 类型type和子类型subtype中间由斜杠 / 分割中间没有空白字符。 类型 代表数据类型所属的大致分类例如 video 或 text 子类型 标识了 MIME 类型所代表的指定类型的确切数据类型。以 text 类型为例它的子类型包括plain纯文本、htmlHTML 源代码、calenderiCalendar/.ics 文件 文件 /etc/mime.types ,来自于mailcap包 MIME格式 type/subtype     ——    主要类型/次要类型 范例  text/plain #文本文件的默认值text/html #所有的 HTML 内容都应该使用这种类型text/css #在网页中要被解析为 CSS 的任何 CSS 文件必须指定 MIME 为 text/cssimage/jpeg jpg jpeg #图片类型image/png #音频与视频类型 video/mp4 application/javascript 4.URI: URI Uniform Resource Identifier 统一资源标识分为URL 和 URN。 URNUniform Resource Naming统一资源命名URLUniform Resorce Locator统一资源定位符用于描述某服务器某特定资源位置 两者区别 URN如同一个人的名称而URL代表一个人的住址。URN定义某事物的身份而URL提供查找该事物的方法。URN仅用于命名而不指定地URL组成 scheme://user:passwordhost:port/path;params?query#frag 解读 scheme:方案访问服务器以获取资源时要使用哪种协议 user:用户某些方案访问资源时需要的用户名 password:密码用户对应的密码中间用分隔 Host:主机资源宿主服务器的主机名或IP地址 port:端口,资源宿主服务器正在监听的端口号很多方案有默认端口号 path:路径,服务器资源的本地名由一个/将其与前面的URL组件分隔 params:参数指定输入的参数参数为名/值对多个参数用;分隔 query:查询传递参数给程序如数据库用分隔,多个查询用分隔 frag:片段,一小片或一部分资源的名字此组件在客户端使用用#分隔 URL示例 5.网站访问量 网站访问量统计的重要指标 IP(独立IP)即Internet Protocol,指独立IP数。一天内来自相同客户机IP 地址只计算一次记录远程客户机IP地址的计算机访问网站的次数是衡量网站流量的重要指标 PV(访问量) 即Page View, 页面浏览量或点击量用户每次刷新即被计算一次PV反映的是浏览某网站的页面数PV与来访者的数量成正比PV并不是页面的来访者数量而是网站被访问的页面数量 UV(独立访客)即Unique Visitor,访问网站的一台电脑为一个访客。一天内相同的客户端只被计算一次。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过cookies实现的。如果更换了IP后但不清除cookies再访问相同网站该网站的统计中UV数是不变的 6.HTTP工作机制 6.1.一次http事务包括 http请求http request http响应http response 6.2.Web资源 web resource 一个网页由多个资源文件构成打开一个页面通常会有多个资源展示出来但是每个资源都要单独请求。因此一个Web 页面”通常并不是单个资源而是一组资源的集合。 6.3.资源类型 静态文件无需服务端做出额外处理,服务器端和客户端的文件内容相同。 常见文件后缀.html, .txt, .jpg, .js, .css, .mp3, .avi。 动态文件服务端执行程序返回执行的结果,服务器端和客户端的文件内容不相同。 常见文件后缀.php, .jsp ,.asp。 6.4.HTTP连接请求 串行和并行连接 串行,持久连接和管道 6.5.提高HTTP连接性能 并行连接通过多条TCP连接发起并发的HTTP请求 持久连接keep-alive重用TCP连接以消除连接和关闭的时延,以事务个数和时间来决定是否关闭连接 管道化连接通过共享TCP连接发起并发的HTTP请求 复用的连接交替传送请求和响应报文实验阶段 6.6.HTTP 协议版本 HTTP 已经演化出了很多版本它们中的大部分都是向下兼容的 HTTP/0.9已过时。只接受 GET 一种请求方法没有在通讯中指定版本号且不支持请求头。由于该版本不支持 POST 方法所以客户端无法向服务器传递太多信息。HTTP/1.0这是第一个在通讯中指定版本号的 HTTP 协议版本至今仍被广泛采用特别是在代理服务器中。HTTP/1.1引入了持久连接即TCP连接默认不关闭可以被多个请求复用能很好地配合代理服务器工作。还支持管道方式机制即在同一个TCP连接里面客户端可以同时发送多个请求以便降低线路负载提高传输速度。HTTP/2.0完全多路复用在一个连接里客户端和浏览器都可以同时发送多个请求或回应而且不用按照顺序一一对应。引入了头信息压缩机制使用gzip或compress压缩后再发送。支持服务端推送允许服务器未经请求主动向客户端发送资源。 三者区别 0.9 只有get  只有下载 没有上传put 1.0 没有长连接 可以下载和上传 1.1 支持长连接  可以下载和上传 HTTP1.0和HTTP1.1的区别 缓存处理在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准HTTP1.1则引入了更多的缓存控制策略例如Entity tagIf-Unmodified-Since, If-Match, If-NoneMatch等更多可供选择的缓存头来控制缓存策略 带宽优化及网络连接的使用HTTP1.0中存在一些浪费带宽的现象例如客户端只是需要某个对象的一部分而服务器却将整个对象送过来了并且不支持断点续传功能HTTP1.1则在请求头引入了range头域它允许只请求资源的某个部分即返回码是206Partial Content方便了开发者自由的选择以便于充分利用带宽和连接 错误通知的管理在HTTP1.1中新增24个状态响应码如409Conflict表示请求的资源与资源当前状态冲突410Gone表示服务器上的某个资源被永久性的删除 Host 头处理在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址因此请求消息中的URL并没有传递主机名hostname。但随着虚拟主机技术的发展在一台物理服务器上可以存在多个虚拟主机Multi-homed Web Servers并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域且请求消息中如果没有Host头域会报告一个错误400 Bad Request 长连接HTTP 1.1支持持久连接PersistentConnection和请求的流水线Pipelining处理在一个TCP连接上可以传送多个HTTP请求和响应减少了建立和关闭连接的消耗和延迟在HTTP1.1中默认开启Connection keep-alive弥补了HTTP1.0每次请求都要创建连接的缺点 HTTP1.0和1.1的问题 HTTP1.x在传输数据时每次都需要重新建立连接无疑增加了大量的延迟时间特别是在移动端更为突出 HTTP1.x在传输数据时所有传输的内容都是明文客户端和服务器端都无法验证对方的身份无法保证数据的安全性 HTTP1.x在使用时header里携带的内容过大增加了传输的成本并且每次请求header基本不怎么变化尤其在移动端增加用户流量 虽然HTTP1.x支持了keep-alive来弥补多次创建连接产生的延迟但是keep-alive使用多了同样会给服务端带来大量的性能压力并且对于单个文件被不断请求的服务(例如图片存放网站)keepalive可能会极大的影响性能因为它在文件被请求之后还保持了不必要的连接很长时间 HTTPS协议 为解决安全问题网景在1994年创建了HTTPS并应用在网景导航者浏览器中。 最初HTTP是与SSL一起使用的在SSL逐渐演变到TLS时其实两个是一个东西只是名字不同而已最新的HTTPS也由在2000年五月公布的RFC 2818正式确定下来。HTTPS就是安全版的HTTP目前大型网站基本实现全站HTTPS HTTPS特点 HTTPS协议需要到CA申请证书一般免费证书很少需要交费 HTTP协议运行在TCP之上所有传输的内容都是明文HTTPS运行在SSL/TLS之上SSL/TLS运行在TCP之上所有传输的内容都经过加密的 HTTP和HTTPS使用的是不同的连接方式端口不同前者是80后者是443 HTTPS可以有效的防止运营商劫持解决了防劫持的一个大问题 HTTPS 实现过程降低用户访问速度但经过合理优化和部署HTTPS 对速度的影响还是可以接受的 HTTP2协议 http/2.02015年HTTP2.0是SPDY的升级版 头信息和数据体都是二进制称为头信息帧和数据帧 复用TCP连接在一个连接里客户端和浏览器都可以同时发送多个请求或回应且不用按顺序一一对应避免了队头堵塞,此双向的实时通信称为多工Multiplexing 引入头信息压缩机制header compression,头信息使用gzip或compress压缩后再发送客户端和服务器同时维护一张头信息表所有字段都会存入这个表生成一个索引号不发送同样字段只发送索引号提高速度 HTTP/2 允许服务器未经请求主动向客户端发送资源即服务器推送server push 6.7HTTP 请求访问的完整过程 一次完整的http请求处理过程   建立连接 接收请求 处理请求 访问资源 构建响应报文 发送响应报文 记录日志 1、建立连接 接收或拒绝连接请求 2、接收请求 接收客户端请求报文中对某资源的一次请求的过程 Web访问响应模型Web I/O 单进程I/O模型启动一个进程处理用户请求而且一次只处理一个多个请求被串行响应 多进程I/O模型并行启动多个进程,每个进程响应一个连接请求 复用I/O结构启动一个进程同时响应N个连接请求 复用的多进程I/O模型启动M个进程每个进程响应N个连接请求同时接收M*N个请求 3、处理请求 服务器对请求报文进行解析并获取请求的资源及请求方法等相关信息根据方法资源首部和可选的主体部分对请求进行处理 常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS 4、访问资源 服务器获取请求报文中请求的资源web服务器即存放了web资源的服务器负责向请求者提供对方请求的静态资源或动态运行后生成的资源 5、构建响应报文 一旦Web服务器识别除了资源就执行请求方法中描述的动作并返回响应报文。响应报文中 包含有响应状态码、响应首部如果生成了响应主体的话还包括响应主体 1响应实体如果事务处理产生了响应主体就将内容放在响应报文中回送过去。响应报文中通常包括 描述了响应主体MIME类型的Content-Type首部 描述了响应主体长度的Content-Length 实际报文的主体内容 2URL重定向web服务构建的响应并非客户端请求的资源而是资源另外一个访问路径 3MIME类型 Web服务器要负责确定响应主体的MIME类型。多种配置服务器的方法可将MIME类型 与资源管理起来 魔法分类Apache web服务器可以扫描每个资源的内容并将其与一个已知模式表(被称为魔法文件)进行匹配以决定每个文件的MIME类型。这样做可能比较慢但很方便尤其是文件没有标准扩展名时 显式分类可以对Web服务器进行配置使其不考虑文件的扩展名或内容强制特定文件或目录内容拥有某个MIME类型 类型协商 有些Web服务器经过配置可以以多种文档格式来存储资源。在这种情况下可以配置Web服务器使其可以通过与用户的协商来决定使用哪种格式(及相关的MIME类型)最好 6、发送响应报文 Web服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的连接有些是空闲的有些在向服务器发送数据还有一些在向客户端回送响应数据。服务器要记录连接的状态还要特别注意对持久连接的处理。对非持久连接而言服务器应该在发送了整条报文之后关闭自己这一端的连接。对持久连接来说连接可能仍保持打开状态在这种情况下服务器要正确地计算Content-Length首部不然客户端就无法知道响应什么时候结束 7、记录日志 最后当事务结束时Web服务器会在日志文件中添加一个条目来描述已执行的事务 6.8.http协议及报文头部结构 方法 GET 获取资源 当前网络请求中绝大部分使用的是 GET 方 HEAD 获取报文首部主要用于确认 URL 的有效性以及资源更新的日期时间等 POST 传输实体主体 比如传输 用户名密码 PUT 上传文件比如写博客 PATCH 对资源进行部分修改 DELETE删除文件 OPTIONS查询支持的方法查看服务端可以支持哪些方法 CONNECT要求在与代理服务器通信时建立隧道类似加密 TRACE追踪路径 url指明资源的具体位置 scheme://user:passwordhost:port/path;params?query#frag scheme ftp 文件传输协议 https 安全的http协议 http 超文本传输协议 user帐号 password密码 host主机名 或 域名 或 ip地址 port 服务器端口号 path访问资源的路径相当于组件路径 params参数但是这个不常用指定一些参数譬如指定传输方式 qurey查询参数 fraghtml资源片段譬如html文档过大的时候frag定位到html的一部分 首部字段使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容HTTP 首部字段是由首部字段名和字段值构成的中间用冒号“:” 分隔 通用首部:请求报文和响应报文两方都会使用的首部 Date: 报文的创建时间 Connection连接状态如keep-alive, close Via显示报文经过的中间节点代理网关 Cache-Control控制缓存如缓存时长 MIME-Version:发送端使用的MIME版本 Warning错误通知 请求首部:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、请求内容相关优先级等信息 Accept通知服务器自己可接受的媒体类型 Accept-Charset 客户端可接受的字符集 Accept-Encoding客户端可接受编码格式如gzip Accept-Language客户端可接受的语言 Client-IP: 请求的客户端IP Host: 请求的服务器名称和端口号 Referer跳转至当前URI的前一个URL User-Agent客户端代理浏览器版本 Expect允许客户端列出某请求所要求的服务器行为条件式请求首部 If-Modified-Since自从指定的时间之后请求的资源是否发生过修改条件式请求首部 If-Unmodified-Since与上面相反条件式请求首部 If-None-Match本地缓存中存储的文档的ETag标签是否与服务器文档的Etag不匹配条件式请求首部 If-Match与上面相反 条件式请求首部 Authorization向服务器发送认证信息如账号和密码安全请求首部 Cookie: 客户端向服务器发送cookie Proxy-Authorization: 向代理服务器认证 代理请求首部 响应首部从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容也会要求客户端附加额外的内容信息 协商首部某资源有多种表示方法时使用 Accept-Ranges服务器可接受的请求范围类型 Vary服务器查看的其它首部列表 安全响应首部 Set-Cookie向客户端设置cookie WWW-Authenticate来自服务器对客户端的质询列表 信息性 Age从最初创建开始响应持续时长 Server服务器程序软件名称和版本 实体首部针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的的信息 缓存相关 ETag实体的扩展标签 Expires实体的过期时间 Last-Modified最后一次修改的时间 Allow: 列出对此资源实体可使用的请求方法 Location告诉客户端真正的实体位于何处 Content-Encoding:对主体执行的编码 Content-Language:理解主体时最适合的语言 Content-Location: 实体真正所处位置 Content-Type主体的对象类型如text 扩展首部 实体请求时附加的数据或响应时附加的数据例如登录网站时的用户名和密码博客的上传文章论坛上的发言等。 request报文格式 method request-URL version headers entity-body 6.9.响应报文 response报文格式 version status reason-phrase headers entity-body 6.9.1状态码 http协议状态码分类 1xx100-101 信息提示 2xx200-206 成功 3xx300-307 重定向 4xx400-415 错误类信息客户端错误 5xx500-505 错误类信息服务器端错误 http协议常用的状态码 200 成功请求数据通过响应报文的entity-body部分发送;OK 301 请求的URL指向的资源已经被删除但在响应报文中通过首部Location指明了资源现在所处的新位置Moved Permanently 302 响应报文Location指明资源临时新位置 Moved Temporarily 304 客户端发出了条件式请求但服务器上的资源未曾发生改变则通过响应此响应状态码通知客户端Not Modified 307: 浏览器内部重定向 401 需要输入账号和密码认证方能访问资源Unauthorized 403 请求被禁止Forbidden 404 服务器无法找到客户端请求的资源Not Found 500 服务器内部错误Internal Server Error,比如:cgi程序没有执行权限 502 代理服务器从后端服务器收到了一条伪响应如无法连接到网关Bad Gateway 503 服务不可用临时服务器维护或过载服务器无法处理请求,比如:php服务停止,无法处理php程序 504 网关超时 五、httpd 安装组成 http 服务基于 C/S 结构 1.常见http 服务器程序 httpd apache存在C10K10K connections问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器基于Java的web容器 Resin CAUCHO公司支持servlets和jsp的引擎 webshpereIBM公司 weblogicBEAOracle jbossRedHatIBM oc4jOracle 2.apache介绍和特点 20世纪90年代初美国国家超级计算机应用中心NCSA开发,1995年开源社区发布apache apache 名字来源流传最广的解释是也是最显而易见的这个名字来自于一个事实当Apache在1995年初开发的时候它是由当时最流行的HTTP服务器NCSA HTTPd 1.3的代码修改而成的因此是一个修补的a patchy”服务器。然而在Apache服务器官方网站的FAQ中是这么解释的Apache这个名字是为了纪念名为Apache的美洲原住民印第安人的一支众所周知他们拥有高超的作战策略和无穷的耐性。”贝伦多夫说我选择阿帕奇这个名字是取其积极含义。阿帕奇族是最后一个屈服于美国政府的民族。当时我们担心大公司迟早会参与竞争并‘教化’这块最早的网络之地所以在我看来阿帕奇是个很好的名称也有人说这个词一语双关-因为正如Apache与a patchy谐音的名字所表明的那样他们确实是在给服务器打补丁。” 软件基金会 ASFapache software foundation FSFFree Software Foundation apache 功能 提供http协议服务 多个虚拟主机IP、Port、FQDN CGICommon Gateway Interface通用网关接口,支持动态程序 反向代理 负载均衡 路径别名 丰富的用户认证机制basicdigest 支持第三方模块 apache特性 高度模块化core modules DSODynamic Shared Object 动态加载/卸载 MPMmulti-processing module 多路处理模块 3.MPM multi-processing module 工作模式 3.1.prefork  prefork : 多进程I/O模型每个进程响应一个请求CentOS 7 httpd默认模型一个主进程生成和回收n个子进程创建套接字不响应请求多个子进程工作 work进程每个子进程处理一个请求系统初始时预先生成多个空闲进程等待请求. Prefork MPM预派生模式有一个主控制进程然后生成多个子进程,每个子进程有一个独立的线程响应用户请求相对比较占用内存但是比较稳定可以设置最大和最小进程数是最古老的一种模式也是最稳定的模式适用于访问量不是很大的场景 优点稳定 缺点慢占用资源不适用于高并发场景 yum 安装默认 prefork  3.2.worker worker : 复用的多进程I/O模型,多进程多线程IIS使用此模型 一个主进程生成m个子进程每个子进程负责生个n个线程每个线程响应一个请求并发响应请求m*n worker MPM 是一种多进程和多线程混合的模型有一个控制进程启动多个子进程每个子进程里面包含固定的线程使用线程程来处理请求当线程不够使用的时候会再启动一个新的子进程然后在进程里面再启动线程处理请求由于其使用了线程处理请求因此可以承受更高的并发。 优点相比prefork 占用的内存较少可以同时处理更多的请求 缺点使用keep-alive的长连接方式某个线程会一直被占据即使没有传输数据也需要一直等待到超时才会被释放。如果过多的线程被这样占据也会导致在高并发场景下的无服务线程可用。该问题在prefork模式下同样会发生 3.3.event event事件驱动模型worker模型的变种CentOS8 默认模型 一个主进程生成m个子进程每个子进程负责生个n个线程每个线程响应一个请求并发响应请求m*n有专门的监控线程来管理这些keep-alive类型的线程当有真实请求时将请求传递给服务线程执行完毕后又允许释放。这样增强了高并发场景下的请求处理能力 event MPM是Apache中最新的模式2012年发布的apache 2.4.X系列正式支持event 模型. 属于事件驱动模型(epoll)每个进程响应多个请求在现在版本里的已经是稳定可用的模式。它和worker模式很像最大的区别在于它解决了keep-alive场景下长期被占用的线程的资源浪费问题某些线程因为被keep-alive空挂在哪里等待中间几乎没有请求过来甚至等到超时。event MPM中会有一个专门的线程来管理这些keep-alive类型的线程当有真实请求过来的时候将请求传递给服务线程执行完毕后又允许它释放。这样增强了高并发场景下的请求处理能力event只在有数据发送的时候才开始建立连接连接请求才会触发工作线程即使用了TCP的一个选项叫做延迟接受连接TCP_DEFER_ACCEPT加了这个选项后若客户端只进行TCP连接不发送请求则不会触发Accept操作也就不会触发工作线程去干活进行了简单的防攻击TCP连接 优点单线程响应多请求占据更少的内存高并发下表现更优秀会有一个专门的线程来管理keep-alive类型的线程当有真实请求过来的时候将请求传递给服务线程执行完毕后又允许它释放 缺点没有线程安全控制 httpd-2.4event 稳定版centos7 以后默认 httpd-2.2event 测试版centos6 默认 4.Httpd 安装和相关文件 4.1.包安装httpd并启动httpd服务 版本说明 CentOS 7 以上默认系统是httpd 2.4CentOS 6 版默认为httpd 2.2 Ubuntu 18.04 默认 Apache/2.4.29 安装方式 包安装: centos发行版稳定建议使用 编译定制或特殊需求 范例安装httpd 2.4 yum  install   httpd -y 4.2 httpd-2.4 相关文件 配置文件 /etc/httpd/conf/httpd.conf 主配置文件 /etc/httpd/conf.d/*.conf 子配置文件 /etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件 检查配置语法 httpd -t 或 apache2 -t 服务单元文件 /usr/lib/systemd/system/httpd.service 配置文件/etc/sysconfig/httpd 服务控制和启动 systemctl enable|disable httpd.service systemctl {start|stop|restart|status|reload} httpd.service apachectl start|stop|restart|configtest service httpd start|stop|restart|configtest 站点网页文档根目录 /var/www/html 模块文件路径 /etc/httpd/modules /usr/lib64/httpd/modules 主服务器程序文件 /usr/sbin/httpd 4.3httpd 命令 检查配置语法httpd  -t 在配置文件更改开启 查看版本httpd  -v 六、httpd常见的配置 1.指定服务器名: [rootlocalhost sysconfig]#httpd -t AH00558: httpd: Could not reliably determine the servers fully qualified domain name, using localhost.localdomain. Set the ServerName directive globally to suppress this message Syntax OK [rootlocalhost sysconfig]#vim /etc/httpd/conf/httpd.conf ServerName www.example.com:80[rootlocalhost sysconfig]#httpd -t Syntax OK 2.包含其它配置文件 Include file-path|directory-path|wildcard IncludeOptional file-path|directory-path|wildcard# - Include和IncludeOptional功能相同都可以包括其它配置文件 - 但是当无匹配文件时include会报错IncludeOptional会忽略错误 include 子配置文件 总目录 3.监听地址 Listen [IP:]PORT 说明 (1) 省略IP表示为本机所有IP (2) Listen指令至少一个可重复出现多次 #可以监听一个端口或多个端口 监听所有的此端口——9527 也可以不写在主配置写在子配置内   注意需要以 .conf 结尾   test.conf 注意要重启httpd服务 4.隐藏服务器版本信息 servertokens prod#语法 ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full#相关指令 ServerTokens Prod[uctOnly] Server: ApacheServerTokens Major: Server: Apache/2 ServerTokens Minor: Server: Apache/2.0 ServerTokens Min[imal]: Server: Apache/2.0.41 ServerTokens OS: Server: Apache/2.0.41 (Unix) ServerTokens Full (or not specified): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 此为默认值 实验 在配置文件添加此语句 注意要重启服务 看不到版本号了 5.持久连接 Persistent Connection连接建立每个资源获取完成后不会断开连接而是继续等待其它的请求完成默认开启持久连接 断开条件 时间限制以秒为单位 默认5shttpd-2.4 支持毫秒级 请求数量: 请求数达到指定值,也会断开 副作用对并发访问量大的服务器持久连接会使有些请求得不到响应 折衷使用较短的持久连接时间 持久连接相关指令 KeepAlive On|Off KeepAliveTimeout 15      #连接持续15s,可以以ms为单位,默认值为5s MaxKeepAliveRequests 500  #持久连接最大接收的请求数,默认值100 6.DSO (Dynamic Shared Object) Dynamic Shared Object加载动态模块配置不需重启即生效动态模块所在路径 /usr/lib64/httpd/modules/ 查看静态编译的模块 httpd -l 查看静态编译及动态装载的模块 httpd -M 7.MPM  (Multi-Processing Module)多路处理模块  httpd 支持三种MPM工作模式prefork, worker, event但只能使用一种不能一起使用。 8.prefork模式相关的配置 StartServers       100 MinSpareServers   50 MaxSpareServers   80 ServerLimit     2560 #最多进程数,最大值 20000 MaxRequestWorkers    2560 #最大的并发连接数默认256 MaxConnectionsPerChild  4000 #子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个 请求之后,子进程将会被父进程终止这时候子进程占用的内存就会释放(为0时永远不释放 MaxRequestsPerChild 4000  #从 httpd.2.3.9开始被MaxConnectionsPerChild代替 9.worker和event 模式相关的配置 ServerLimit         16  #最多worker进程数 Upper limit on configurable number of processes StartServers        10  #Number of child server processes created at startup MaxRequestWorkers  150  #Maximum number of connections that will be processed simultaneously MinSpareThreads     25 MaxSpareThreads     75 ThreadsPerChild     25  #Number of threads created by each child process 10.定义Main server的文档页面路径: DocumentRoot /path” directory /pathRequire all granted /directory说明DocumentRoot指向的路径为URL路径的起始位置/path 必须显式授权后才可以访问 在配置文件下添加 vim /etc/httpd/conf/httpd.conf 修改地址并授权 建立好目录 在文件中添加内容  重启服务  测试 还可以设置别名访问test文件相当于访问/opt/lxc 11.定义站点默认主页面文件 DirectoryIndex index.txt index.html谁在前面就默认访问谁 12.虚拟主机 httpd 支持在一台物理主机上实现多个网站即多虚拟主机 网站的唯一标识 IP相同但端口不同 IP不同但端口均为默认端口 FQDN不同, IP和端口都相同 多虚拟主机有三种实现方案 基于ip为每个虚拟主机准备至少一个ip地址 基于port为每个虚拟主机使用至少一个独立的port 基于FQDN为每个虚拟主机使用至少一个FQDN请求报文中首部 Host 12.1.基于ip地址  listen 9527 KeepAlive On KeepaliveTimeout 300 MaxKeepAliveRequests 2Directory /opt/html# Allow open access:Require all granted /DirectoryVirtualHost 192.168.91.3ServerAdmin supportjfedu.netDocumentRoot /opt/html/3ServerName www.accp.comErrorLog logs/3_error_logCustomLog logs/3_access_log common /VirtualHostVirtualHost 192.168.91.6ServerAdmin supportjfedu.netDocumentRoot /opt/html/6ServerName www.accp.comErrorLog logs/6_error_logCustomLog logs/6_access_log common /VirtualHost编辑配置文件vim /etc/httpd/conf.d/test.conf 创建目录 写入内容 重启http服务 测试 12.2.基于端口 listen 9527 KeepAlive On KeepaliveTimeout 300 MaxKeepAliveRequests 2Directory /opt/html# Allow open access:Require all granted /DirectoryVirtualHost 192.168.91.3:80ServerAdmin supportjfedu.netDocumentRoot /opt/html/3ServerName www.accp.com /VirtualHostVirtualHost 192.168.91.6:9527ServerAdmin supportjfedu.netDocumentRoot /opt/html/6ServerName www.accp.com /VirtualHost更改配置文件  12.3.基于域名 listen 9527 KeepAlive On KeepaliveTimeout 300 MaxKeepAliveRequests 2Directory /opt/html# Allow open access:Require all granted /DirectoryVirtualHost 192.168.91.3ServerAdmin supportjfedu.netDocumentRoot /opt/html/3ServerName www.lxcg.com /VirtualHostVirtualHost 192.168.91.6ServerAdmin supportjfedu.netDocumentRoot /opt/html/6ServerName www.lxcgg.com /VirtualHost更改配置文件 没有域名解析在配置文件中添加域名解析  13.基于客户端 IP 地址实现访问控制 13.1.黑名单 不能有失效至少有一个成功匹配才成功即失败优先 RequireAllRequire all grantedRequire not ip 172.16.1.1 #拒绝特定ip /RequireAll 13.2.白名单 多个语句有一个成功则成功即成功优先 RequireAnyRequire all deniedRequire ip 172.16.1.1 #允许特定IP /RequireAny 实验  directory /mnt RequireAllRequire all granted #默认允许所有Require not ip 192.168.91.1 #除了真机不可以访问 /RequireAll /directoryalias /test /mnt/html 配置文件 测试  其他可以访问 真机无法访问  七、Cookie和session 介绍 无状态协议是指协议对事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则必须重传这样可能导致每次连接传送的数据量增大。另一方面在服务器不需要先前信息时它应答就很快。 HTTP是超本文传输协议顾名思义这个协议支持超文本的传输。什么是超文本说白了就是使用HTML编写的页面。通常我们使用客户端浏览器访问服务器的资源最常见的URL也是以html为后缀的文件因此可以说超文本是网络上最主要的资源。 既然HTTP协议的目的是在于支持超文本的传输也就是资源的传输那么客户端浏览器向HTTP服务器发送请求继而HTTP服务器将相信资源发回给客户端这样一个过程中无论对于客户端还是服务器都没有必要记录这个过程因为每一次请求和响应都是相对独立的一般而言一个URL对应着一个唯一的超文本正是因为这样的唯一性使得记录用户的行为状态变得毫无意义所以HTTP协议被设计为无状态的连接协议符合它本身的需求。 HTTP协议这种特性有优点也有缺点优点在于解放了服务器每一次请求点到为止不会造成不必要的连接占用缺点在于如果为了保留状态每次请求都会传输大量的重复信息内容。 可是随着 Web 的不断发展很多业务都需要对通信状态进行保存.如果是一次性会话的过程 打开浏览器 - 访问一些服务器内容 - 关闭浏览器但目前有很多WEB访问场景并不是一次性会话而是多次相关的会话比如 登录场景 打开浏览器 - 浏览到登陆页面 - 输入用户名和密码 - 访问到用户主页(显示用户名) - 修改密码输入原密码- 修改收货地址....... 问题在此处登录会话过程中产生的数据用户会话数据如何保存下来呢 购物场景 打开浏览器 - 浏览商品列表 - 加入购物车(把商品信息保存下来) - 关闭浏览器打开浏览器- 直接进入购物车 - 查看到上次加入购物车的商品 - 下订单 - 支付 问题 在购物会话过程中如何保存商品信息 以上场景都需要保留会话数据需要会话管理机制。 会话管理 管理浏览器客户端和服务器端之间会话过程中产生的会话数据。 为了会话管理HTTP就需要传输大量重复信息内容的问题造成大量的网络带宽消耗。于是 Cookie 和Session 技术闪亮登场了它们可以为用户进行会话管理实现保存状态。 1.Cookie Cookie 又称为小甜饼”。类型为小型文本文件”指某些网站为了辨别用户身份而储存在用户本地终端Client Side上的数据通常经过加密。由网景公司的前雇员卢·蒙特利在1993年3月发明 因为HTTP协议是无状态的即服务器不知道用户上一次做了什么这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中用户浏览了几个页面买了一盒饼干和两瓶饮料。最后结帐时由于HTTP的无状态性不通过额外的手段服务器并不知道用户到底买了什么所以Cookie就是用来绕开HTTP的无状态性的额外手段”之一。服务器可以设置或读取Cookies中包含信息借此维护用户跟服务器会话中的状态。 在上面的购物场景中当用户选购了第一项商品服务器在向用户发送网页的同时还发送了一段Cookie记录着那项商品的信息。当用户访问另一个页面浏览器会把Cookie发送给服务器于是服务器知道他之前选购了什么。用户继续选购饮料服务器就在原来那段Cookie里追加新的商品信息。结帐时服务器读取发送来的Cookie就行了。 Cookie基于HTTP协议也叫Web Cookie或浏览器Cookie是服务器发送到用户浏览器并保存在客户端本地的一小块数据它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常它用于告知服务端两个请求是否来自同一浏览器如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。 #第一次请求过程 浏览器第一次发送请求时,不会携带任何cookie信息 服务器接收到请求之后发现请求中没有任何cookie信息 服务器生成和设置一个cookie.并将此cookie设置通过set_cookie的首部字段保存在响应报文中返回给浏 览器 浏览器接收到这个响应报文之后,发现里面有cookie信息,浏览器会将cookie信息保存起来 #第二次及其之后的过程 当浏览器第二次及其之后的请求报文中自动 cookie的首部字段携带第一次响应报文中获取的cookie信息 服务器再次接收到请求之后,会发现请求中携带的cookie信息,这样的话就认识是谁发的请求了 之后的响应报文中不会再添加set_cookie首部字段 Cookie主要用于以下三个方面 会话状态管理如用户登录状态、购物车、游戏分数或其它需要记录的信息 个性化设置如用户自定义设置、主题等 浏览器行为跟踪如跟踪分析用户行为等 Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。当服务器收到HTTP请求时服务器可以在响应头里面添加一个Set-Cookie选项。浏览器收到响应后通常会保存下Cookie之后对该服务器每一次请求中都通过Cookie请求头部将Cookie信息发送给服务器。服务器端发现客户端发送过来的 Cookie 后会去检查究竟是从哪一个客户端发来的连接请求然后对比服务器上的记录最后得到之前的状态信息.另外Cookie的过期时间、域、路径、有效期、适用站点都可以根据需要来指定。 2.Session 3.Cookie与Session区别 3.1.cookie和session的相同和不同 cookie通常是在服务器生成,但也可以在客户端生成,session是在服务器端生成的 session 将数据信息保存在服务器端可以是内存文件数据库等多种形式,cookie 将数据保存在客户端的内存或文件中 单个cookie保存的数据不能超过4K每个站点cookie个数有限制比如IE8为50个、Firefox为50个、Opera为30个session存储在服务器没有容量限制 cookie存放在用户本地可以被轻松访问和修改安全性不高session存储于服务器比较安全 cookie有会话**cookie和持久cookie**生命周期为浏览器会话期的会话cookie保存在缓存关闭浏览器窗口就消失持久cookie被保存在硬盘知道超过设定的过期时间随着服务端session存储压力增大会根据需要定期清理session数据 session中有众多数据只将sessionID这一项可以通过cookie发送至客户端进行保留客户端下次访问时在请求报文中的cookie会自动携带sessionID从而和服务器上的的session进行关联 3.2.缺点  cookie缺点 1、使用cookie来传递信息随着cookie个数的增多和访问量的增加它占用的网络带宽也很大试想假如cookie占用200字节如果一天的PV有几个亿那么它要占用多少带宽 2、cookie并不安全因为cookie是存放在客户端的所以这些cookie可以被访问到设置可以通过插件添加、修改cookie。所以从这个角度来说我们要使用sesssionsession是将数据保存在服务端的只是通过cookie传递一个sessionId而已所以session更适合存储用户隐私和重要的数据 session 缺点 1、不容易在多台服务器之间共享可以使用session绑定session复制session共享解决 2、session存放在服务器中所以session如果太多会非常消耗服务器的性能cookie和session各有优缺点在大型互联网系统中单独使用cookie和session都是不可行的 八、Web相关工具 1.Weget相关工具 非交互式的网络文件下载工具 格式 wget [OPTION]... [URL]... 选项 -q静默模式-c断点续传-P/path 保存在指定目录-Ofilename 保存为指定文件名filename 为 - 时发送至标准输出--limit-rate指定传输速率单位KM等 实例 [rootcentos7 ~]#wget --limit-rate 1M -P /data https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso 2.curl curl是基于URL语法在命令行方式下工作的文件传输工具它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证并且支持HTTP的POST、PUT等方法 FTP上传 kerberos认证HTTP上传代理服务器cookies用户名/密码认证 下载文件断点续传上载文件断点续传, http代理服务器管道 proxy tunneling还支持IPv6socks5代理服务器通过http代理服务器上传文件到FTP服务器等功能十分强大。 格式 curl [options] [URL...] -A/--user-agent string 设置用户代理发送给服务器 -e/--referer URL 来源网址 --cacert file CA证书 (SSL) -k/--insecure   允许忽略证书进行 SSL 连接 --compressed 要求返回是压缩的格式 -H/--header key:value” 自定义首部字段传递给服务器 -i 显示页面内容包括报文首部信息 -I/--head 只显示响应报文首部信息 -D/--dump-header file将url的header信息存放在指定文件中 --basic 使用HTTP基本认证 -u/--user user[:password]设置服务器的用户和密码 -L   如果有3xx响应码重新发请求到新位置 -O 使用URL中默认的文件名保存文件到本地 -o file 将网络文件保存为指定的文件中 --limit-rate rate 设置传输速度 -0/--http1.0 数字0使用HTTP 1.0 -v/--verbose 更详细 -C 选项可对文件使用断点续传功能 -c/--cookie-jar file name 将url中cookie存放在指定文件中 -x/--proxy proxyhost[:port] 指定代理服务器地址 -X/--request command 向服务器发送指定请求方法 -U/--proxy-user user:password 代理服务器用户和密码 -T 选项可将指定的本地文件上传到FTP服务器上 --data/-d 方式指定使用POST方式传递数据 -s --silent   Silent mode -b namedata 从服务器响应set-cookie得到值返回给服务器 -w format 显示相应的指定的报文信息如%{http_code}%{remote_ip}等 -m, --max-time time 允许最大传输时间 实例 [rootlocalhost ~]#curl www.163.com -vA chrome #冒充 chrome 浏览器 实例 3.压力测试工具: httpd的压力测试工具 ab, webbench, http_load, seige Jmeter 开源 Loadrunner 商业有相关认证 tcpcopy网易复制生产环境中的真实请求并将之保存 ab 来自httpd-tools包 命令格式 ab [OPTIONS] URL 选项 -n总请求数 -c模拟的并发数 -k以持久连接模式测试
http://www.hkea.cn/news/14541637/

相关文章:

  • 网站开发小程序定制网站制作做站长挣钱
  • 杭州网站建设方案书做任务赚话费的网站
  • 网站紧急升级维护中朋友做的网站图片不显示
  • 做网站和app怎么跑业务开发网站公司收入
  • 打折网站建设教程下载wordpress设置头像
  • 企业网站认证如何用百度搜自己做的网站
  • 网站开发获取报价旅游网站建设经费预算
  • dede网站后台南宁网络公司有哪些
  • 成都 建设网站智慧团建在线登录
  • 北京网站制建设公司wordpress启用特色
  • 什么网站专门做境外当地游小程序收录wordpress主题
  • 金华网站建设yw126中信建设内部网站
  • 设计导航网站大全see最便宜云主机永久免费
  • 鲜花网站建设店蓬莱专业做网站公司
  • 台州网站建设 推广公司佛山 网站关键词优化
  • 东莞工信部网站vs html5网站开发
  • 网站没内容 可以备案么网站缩略图尺寸
  • 超简单网站网页打不开怎么处理
  • 西宁网站建设公司排名从事网站开发
  • 通栏网站重庆无障碍网站建设
  • 网站建设价格评审资料清单品牌推广网站怎样做
  • 行业展示类型网站医院网站加快建设
  • 网站信息架构图怎么做设计手绘
  • 国外做的比较好的网站新乡公司做网站找哪家公司好
  • 怎么做产品网站推广网站后台模板 html
  • 织梦英文版网站怎么做网站引导页是什么问题
  • 北京免费模板建站自媒体官网平台注册
  • 艺术品商城网站开发wordpress PHP cpanel
  • 学院招生网站建设方案网站建站要求
  • 网站建设公司运营模式网站建设都包含什么步骤