动态页网站,seo网站设计网页单页设计,详情页模板免费商用,12306网站服务时间1.http 相关概念
HTTP是处于应用层的协议#xff0c;使用TCP传输层协议进行可靠的传送。因此#xff0c;需要特别提醒的是#xff0c;万维网是基于因特网的一种广泛因特网应用系统#xff0c;且万维网采用的是HTTP#xff08;80/TCP#xff09;和 HTTPS#xff08;443/…1.http 相关概念
HTTP是处于应用层的协议使用TCP传输层协议进行可靠的传送。因此需要特别提醒的是万维网是基于因特网的一种广泛因特网应用系统且万维网采用的是HTTP80/TCP和 HTTPS443/TCP的传输协议但因特网还有其他的网络应用系统如FTP、SMTP等等
2.HTTP 相关技术 WEB开发语言
http Hyper Text Transfer Protocol 应用层协议默认端口 80/tcp
WEB前端开发语言 html css javascript
html
Hyper Text Markup Language 超文本标记语言编程语言主要负责实现页面的结构
CSS
Cascading Style Sheet 层叠样式表 定义了如何显示装扮 HTML 元素比如字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档可以同时改变站点中所有页面的布局和外观。
js
javascript实现网页的动画效果但实属于静态资源
,Java和javascript的关系: 周杰和周杰伦的关系
MIME
MIME : Multipurpose Internet Mail Extensions 多用途互联网邮件扩展
文件 /etc/mime.types ,来自于mailcap包
MIME格式type/subtype 主要类型/次要类型、
URI(i) 和 URL uri
URI Uniform Resource Identifier 统一资源标识分为URL 和 URN URNUniform Resource Naming统一资源命名 URLUniform Resorce Locator统一资源定位符用于描述某服务器某特定资源位置
两者区别 URN如同一个人的名称而URL代表一个人的住址。换言之URN定义某事物的身份而URL提供查找该事物的方法。URN仅用于命名而不指定地URL组成 scheme:方案访问服务器以获取资源时要使用哪种协议 user:用户某些方案访问资源时需要的用户名 password:密码用户对应的密码中间用分隔 Host:主机资源宿主服务器的主机名或IP地址 port:端口,资源宿主服务器正在监听的端口号很多方案有默认端口号 path:路径,服务器资源的本地名由一个/将其与前面的URL组件分隔 params:参数指定输入的参数参数为名/值对多个参数用;分隔 query:查询传递参数给程序如数据库用分隔,多个查询用分隔 frag:片段,一小片或一部分资源的名字此组件在客户端使用用#分隔
HTTP版本协议
http/0.9
原型版本功能简陋只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符串不能回应别的格式只能提供下载)
http/1.0
每个TCP连接只能发送一个请求发送数据完毕连接就关闭如果还要请求其他资源就必须再新建一个连接引入了POST命令和HEAD命令头信息是 ASCII 码后面数据可为任何格式。提供下载和上传服务
http/1.1
引入了持久连接即TCP连接默认不关闭可以被多个请求复用
HTTP 请求访问的完整过程 建立连接 接收请求 处理请求 访问资源 构建响应报文 发送响应报文 记录日志
一次完整的http请求处理过程
1、建立连接
接收或拒绝连接请求
2、接收请求
接收客户端请求报文中对某资源的一次请求的过程
Web访问响应模型 单进程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服务器识别除了资源就执行请求方法中描述的动作并返回响应报文。响应报文中 包含有响应状态码、响应首部如果生成了响应主体的话还包括响应主体
6、发送响应报文
Web服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的连接有些是空闲的有些在向服务器发送数据还有一些在向客户端回送响应数据。服务器要记录连接的状态还要特别注意对持久连接的处理。对非持久连接而言服务器应该在发送了整条报文之后关闭自己这一端的连接。对持久连接来说连接可能仍保持打开状态在这种情况下服务器要正确地计算Content-Length首部不然客户端就无法知道响应什么时候结束
7、记录日志
最后当事务结束时Web服务器会在日志文件中添加一个条目来描述已执行的事务
请求报文 方法 GET 获取资源 当前网络请求中绝大部分使用的是 GET 方 HEAD 获取报文首部主要用于确认 URL 的有效性以及资源更新的日期时间等 POST 传输实体主体 比如传输 用户名密码 PUT 上传文件比如写博客 PATCH 对资源进行部分修改 DELETE删除文件 OPTIONS查询支持的方法查看服务端可以支持哪些方法 CONNECT要求在与代理服务器通信时建立隧道类似加密 TRACE追踪路径
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的一部分
响应报文 状态码
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 网关超时
常见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介绍和特点
apache 功能 提供http协议服务 多个虚拟主机IP、Port、FQDN CGICommon Gateway Interface通用网关接口,支持动态程序 反向代理 负载均衡 路径别名 丰富的用户认证机制basicdigest 支持第三方模块
apache特性 高度模块化core modules DSODynamic Shared Object 动态加载/卸载 MPMmulti-processing module 多路处理模块
MPM 工作模式
prefork
多进程I/O模型每个进程响应一个请求CentOS 7 httpd默认模型一个主进程生成和回收n个子进程创建套接字不响应请求多个子进程工作 work进程每个子进程处理一个请求系统初始时预先生成多个空闲进程等待请求 优点稳定 缺点慢占用资源不适用于高并发场景
worker
是一种多进程和多线程混合的模型有一个控制进程启动多个子进程每个子进程里面包含固定的线程使用线程程来处理请求当线程不够使用的时候会再启动一个新的子进程然后在进程里面再启动线程处理请求由于其使用了线程处理请求因此可以承受更高的并发。
优点相比prefork 占用的内存较少可以同时处理更多的请求 缺点使用keep-alive的长连接方式某个线程会一直被占据即使没有传输数据也需要一直等待到超时才会被释放。
event
事件驱动模型worker模型的变种CentOS8 默认模型 有专门的监控线程来管理这些keep-alive类型的线程当有真实请求时将请求传递给服务线程执行完毕后又允许释放。这样增强了高并发场景下的请求处理能力
优点单线程响应多请求占据更少的内存高并发下表现更优秀会有一个专门的线程来管理keep-alive类型的线程当有真实请求过来的时候将请求传递给服务线程执行完毕后又允许它释放 缺点没有线程安全控制
httpd 相关文件
配置文件 /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
Cookie和session
cookie Cookie 又称为小甜饼”。类型为小型文本文件”指某些网站为了辨别用户身份而储存在用户本地终端Client Side上的数据通常经过加密。
Cookie基于HTTP协议也叫Web Cookie或浏览器Cookie是服务器发送到用户浏览器并保存在客户端本地的一小块数据它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常它用于告知服务端两个请求是否来自同一浏览器如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。
Cookie主要用于以下三个方面 会话状态管理如用户登录状态、购物车、游戏分数或其它需要记录的信息 个性化设置如用户自定义设置、主题等 浏览器行为跟踪如跟踪分析用户行为等
Session
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进行关联
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都是不可行的 5 Web相关工具
格式
wget [OPTION]... [URL]...
常用选项 -q 静默模式 -c 断点续传 -P /path 保存在指定目录 -O filename 保 存为指定文件名filename 为 - 时发送至标准输出 --limit-rate 指定传输速率单位KM等
curl
curl是基于URL语法在命令行方式下工作的文件传输工具它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。
格式
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 允许最大传输时间
例子
curl -I http://www.163.com 冒充浏览器
curl www.163.com -vA chrome