松江品划网站建设维护,做音频后期的素材网站,颍上做网站,泰安新闻出版小镇一、http相关概念#xff1a; http概述#xff1a; HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础#xff0c;同时#xff0c;也是一种客户端—服务器#xff08;client-server#xff09;协议 为解决用什么样的网络协…一、http相关概念 http概述 HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础同时也是一种客户端—服务器client-server协议 为解决用什么样的网络协议来实现整个因特网上的万维网文档”这一难题就要使万维网客户程序以浏览器为主但不限于浏览器与万维网服务器程序之间的交互遵守严格的协议即超文本传送协议HyperText Transfer Protocol。HTTP是处于应用层的协议使用TCP传输层协议进行可靠的传送。 二、http相关技术 3.1 web开发语言
htmlcssjavascript 3.1.1.html概述 HTML叫做超文本标记语言是一种规范也是一种标准它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件通过在文本文件中添加标记符可以告诉浏览器如何显示其中的内容。HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑生成超文本标记语言文件只用修改文件名后缀为“.html”或“.htm”即可。
3.1.2 css: 定义了如何显示装扮 HTML 元素比如字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档可以同时改变站点中所有页面的布局和外观。
3.1.3 javascript 实现网页的动画效果但实属于静态资源 3.2 动态网页语言
PHP
即 Hypertext Preprocessor超文本预处理器它是当今 Internet 上最为火热的脚本语言其语法借鉴了 C、Java、PERL 等语言但只需要很少的编程知识你就能使用 PHP 建立一个真正交互的 Web 站点。
JSP
即 Java Server PagesJava 服务器页面它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技术是基于 Java Servlet 以及整个 Java 体系的 Web 开发技术。
Python
是一种面向对象、跨平台的动态类计算机程序设计语言最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加越来越多被用于独立的大型项目开发。 3.3 URI URI统一资源标识分为URL 和 URN
URN统一资源命名URN仅用于命名URL统一资源定位符用于描述某服务器某特定资源位置 三、http协议版本
HTTP/0.9已过时。只接受 GET 一种请求方法没有在通讯中指定版本号且不支持请求头。HTTP/1.0引入了POST命令和HEAD命令头 每个TCP连接只能发送一个请求发送数据完毕连接就关闭如果还要请求其他资源就必须再新建一个连接 。这是第一个在通讯中指定版本号的 HTTP 协议版本至今仍被广泛采用特别是在代理服务器中。HTTP/1.1引入了持久连接即TCP连接默认不关闭可以被多个请求复用能很好地配合代理服务器工作。还支持管道方式机制即在同一个TCP连接里面客户端可以同时发送多个请求以便降低线路负载提高传输速度。
四、http请求访问的过程 4.1.过程 建立连接 接收请求 处理请求 访问资源 构建响应报文 发送响应报文 记录日志 4.2 请求报文 4.2.1 方法
HTTP 方法描述GET 对服务器资源获取的简单请求PUT向服务器提交数据以修改数据DELETE删除服务器上的某些资源POST 用于发送包含用户提交数据的请求HEAD 请求页面的首部获取资源的元信息
4.2.2 URL
scheme://user:passwordhost:port/path;params?query#frag scheme http 超文本传输协议 https 安全的http协议 ftp 文件传输协议 user帐号 password密码 host主机名 或 域名 或 ip地址 port 服务器端口号 path访问资源的路径相当于组件路径 params参数但是这个不常用指定一些参数譬如指定传输方式 qurey查询参数 fraghtml资源片段譬如html文档过大的时候frag定位到html的一部分
4.3 响应报文 4.3.1状态码 状态码分类
状态码首位已定义范围分类1xx100-101 信息提示2xx200-206 成功3xx300-305 重定向4xx400-415客户端错误5xx500-505服务器错误 常用状态码
200一切正常301永久重定向将缓存记录在浏览器中302临时重定向没有缓存每次都要重定向401用户名或密码错误403禁止访问(客户端IP地址被拒绝)404请求的文件不存在414请求URL头部过长500服务器内部错误502无效网关503当前服务不可用504网关请求超时
五、常见的http服务器程序 httpd apache存在C10K10K connections问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器基于Java的web容器 Resin CAUCHO公司支持servlets和jsp的引擎 webshpereIBM公司 weblogicBEAOracle jbossRedHatIBM oc4jOracle
六、apache介绍和特点
1.apache 功能 提供http协议服务 多个虚拟主机IP、Port、FQDN CGICommon Gateway Interface通用网关接口,支持动态程序 反向代理 负载均衡 路径别名 丰富的用户认证机制basicdigest 支持第三方模块
2.apache特性 高度模块化core modules DSODynamic Shared Object 动态加载/卸载 MPMmulti-processing module 多路处理模块
3.MPM multi-processing module 工作模式 3.1 prefork多进程I/O模型每个进程响应一个请求CentOS 7 httpd默认模型一个主进程生成和回收n个子进程创建套接字不响应请求多个子进程工作 work进程每个子进程处理一个请求系统初始时预先生成多个空闲进程等待请求 优点稳定 缺点慢占用资源不适用于高并发场景 3.2 worker 是一种多进程和多线程混合的模型有一个控制进程启动多个子进程每个子进程里面包含固定的线程使用线程程来处理请求当线程不够使用的时候会再启动一个新的子进程然后在进程里面再启动线程处理请求由于其使用了线程处理请求因此可以承受更高的并发。
优点相比prefork 占用的内存较少可以同时处理更多的请求缺点使用keep-alive的长连接方式某个线程会一直被占据即使没有传输数据也需要一直等待到超时才会被释放。 3.3 event事件驱动模型worker模型的变种CentOS8 默认模型 有专门的监控线程来管理这些keep-alive类型的线程当有真实请求时将请求传递给服务线程执行完毕后又允许释放。这样增强了高并发场景下的请求处理能力
优点单线程响应多请求占据更少的内存高并发下表现更优秀会有一个专门的线程来管理keep-alive类型的线程当有真实请求过来的时候将请求传递给服务线程执行完毕后又允许它释放缺点没有线程安全控制
七、相关配置文件
7.1 配置文件 /etc/httpd/conf/httpd.conf 主配置文件 /etc/httpd/conf.d/*.conf 子配置文件 /etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件 当一台服务器项目过多时可以把配置不同的子配置文件文件
7.2 站点网页文档根目录 /var/www/html
7.3 模块文件路径 /etc/httpd/modules /usr/lib64/httpd/modules
八、web相关工具 8.1 wget: 8.1.1 格式
wget [OPTION]... [URL]... 8.1.2 常用选项
-q 静默模式
-c 断点续传
-P /path 保存在指定目录
-O filename 保 存为指定文件名filename 为 - 时发送至标准输出
--limit-rate 指定传输速率单位KM等 8.2 curl: curl是基于URL语法在命令行方式下工作的文件传输工具它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。 8.2.1 格式
curl [options] [URL...] 8.2.2 常用选项
-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 允许最大传输时间
-n总请求数
-c模拟的并发数
-k以持久连接模式测试
8.3 压力测试工具 ab: 命令格式
ab [OPTIONS] URL
选项
-n总请求数
-c模拟的并发数
-k以持久连接模式测试
九、Cookie和session
9.1 Cookie Cookie 又称为小甜饼”。类型为小型文本文件”指某些网站为了辨别用户身份而储存在用户本地终端Client Side上的数据通常经过加密。由网景公司的前雇员卢·蒙特利在1993年3月发明 因为HTTP协议是无状态的即服务器不知道用户上一次做了什么这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中用户浏览了几个页面买了一盒饼干和两瓶饮料。最后结帐时由于HTTP的无状态性不通过额外的手段服务器并不知道用户到底买了什么所以Cookie就是用来绕开HTTP的无状态性的额外手段”之一。服务器可以设置或读取Cookies中包含信息借此维护用户跟服务器会话中的状态。 在上面的购物场景中当用户选购了第一项商品服务器在向用户发送网页的同时还发送了一段Cookie记录着那项商品的信息。当用户访问另一个页面浏览器会把Cookie发送给服务器于是服务器知道他之前选购了什么。用户继续选购饮料服务器就在原来那段Cookie里追加新的商品信息。结帐时服务器读取发送来的Cookie就行了。 Cookie基于HTTP协议也叫Web Cookie或浏览器Cookie是服务器发送到用户浏览器并保存在客户端本地的一小块数据它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常它用于告知服务端两个请求是否来自同一浏览器如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。
9.2 session session 将数据信息保存在服务器端可以是内存文件数据库等多种形式,cookie 将数据保存在客户端的内存或文件中 session中有众多数据只将sessionID这一项可以通过cookie发送至客户端进行保留客户端下次访问时在请求报文中的cookie会自动携带sessionID从而和服务器上的的session进行关联
十、通信套接字socket 实现不同主机之间进行通信和数据交换 进程之间传输的标志IP地址和端口号合称为套接字地址 socket address
10.1 http协议中socket的作用
客户机套接字地址定义了一个唯一的客户进程服务器套接字地址定义了一个唯一的服务器进程
10.2 套接字调用的相关接口
socket()创建一个套接字bind()绑定IP和端口listen()监听accept()接收请求connect()请求连接建立write() 发送read()接收close()关闭连接