一、web服务
1、web服务
早期web服务使用http/0.9协议,仅支持纯文本(包括超链接)HTML;
HTML:超文本标记语言,是专门用来开发超文本的开发语言;
URI:统一资源标识符,用于定义全局范围内某一独立资源的命名方式;URI就像因特网上邮寄地址一样,在世界范围内唯一标识并定位信息资源。
URL:统一资源定位符,是URI的子对象,用于描述在互联网上互联网资源的统一表示格式;
格式:协议://主机:(端口)/路径/文件
2、web资源
可以通过统一资源定位符唯一标记,能够让客户端访问的文件等资源,多个资源可能被整合为一个html文档。
web服务器是web资源的宿主。web资源是web内容的源头。最简单的web资源就是web服务器文件系统中的静态文件。这些文件可以包含任意内容:文本文件、HTML文件、微软的word文件、Adobe的acrobat文件、JPEG图片文件、AVI电影文件,或所有其他你能想到的格式。
但是资源不一定非得是静态文件。资源还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容。他们可以为你现实照相中活生生的照片,也可以帮你进行股票交易,搜索房产数据库,或者从在线商店中购买礼物等。
3、http方法
http方法就是获取web资源的方法;
http/1.0:GET、POST、PUT、DELETE等
MIME:多用途互联网邮件扩展;将非文本数据在传输前重新编码为文本格式,接收方能够使用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件。 MIME只用作将文本与视频及图片进行转换。
4、 web服务请求与响应简单过程
5、web服务器的主要操作
(1)建立连接----接受或拒绝客户端连接请求;
(2)接收请求----通过网络读取http请求报文;
(3)处理请求----解析请求报文并作出相应的动作;
(4)访问资源----访问请求报文中相关的资源;
(5)构建响应----使用正确的首部生成http响应报文;
(6)发送响应----向客户端发送生成的响应报文;
(7)记录日志----当已经完成http事物记录进行日志文件。
二、http协议
1、http协议基础
http:超文本传输协议,默认情况下,http协议就是用来实现客户端到服务器端数据传输的;并且http协议默认只传输文本文件(数据流)。
2、http的工作机制
(1)首先会建立tcp连接,通过tcp80端口进行连接;
(2)http发送请求
(3)http响应
注意:请求时非常多的。(前端语言将很多资源进行划分,而固定的服务器只能提供固定的资源,所以,很可能请求了一次,事实上生成了狠多进程。)
3、多处理模块(MPM)
http支持MPM,因为http提供的进程访问数量有限,所以,我们要启用一些访问机制,来处理高并发流量。
(1)MPM支持三种模式:
prefork----队列模式(默认模式)
work-------多线程模式
event------多线程并发处理模式(不稳定,不建议使用)
prefork模式:这种模式采用预派生子进程的方式,他没有线程的概念,是多进程模式,一个子进程处理一个连接,稳定,响应快,每个子进程之间相互独立,但是每个进程都要占用内存,消耗系统的资源过高。
work模式:一个进程会生成很多个线程,一个线程处理一个http的请求,相比prefork模式更加节内存资源,但是,当一个线程崩溃,整个进程就会连同其所有线程一同挂掉。
event模式:一个线程可以处理多个请求。
(2)如何修改MPM模式
在/etc/sysconfig/httpd下修改:
#HTTPD=/usr/sbin/httpd.worker //去掉#即可
修改完成要重新加载配置,才可以生效。
4、http的版本
HTTP/0.9 最早的被广泛采用的版本 原型版本,不支持多媒体内容,只支持纯文本传输。
HTTP/1.0 第一个广泛使用的版本,现在依然被使用,能支持多媒体,但是缓存机制能力不足;
HTTP/1.1 增强了缓存功能,当前使用的版本;
HTTP/2.0 2001年就出来了,现在基于web的应用多数使用HTTP/2.0版本(新版本),它参考了谷歌的spdy协议,所以我们有理由相信HTTP/2.0会被广泛使用。
5、cookie机制
(1)原理
(2)分类(存在客户端)
永久cookie -- 把cookie值存在硬盘上(这里需要指定cookie的保存时间),存在硬盘中,有一个过期时间,除非用户手动清除或到了过期时间,否则硬盘中的cookie不会被删除,其存在时间是长期的。
临时cookie -- 把cookie值保存在内存上(重启流量器即失效),内存cookie由浏览器维护,保存在内存中,当浏览器关闭之后就消失了,存在时间很短。
(3)http请求和cookie交互过程
(4)cookie的缺点
cookie会被附加到每一个http请求中,增加了流量;
在http传输过程中cookie是明文传输,所以很不安全;
cookie限制在4KB左右,对于复杂的存储需求是不够用的。
6、http模式(method)
GET 普通的请求
HEAD 之请求网站的头部信息
POST 推送用户名或密码的时候使用的
PUT 推送比较大的资源的时候使用的
DELETE 发起删除对应资源的命令
TARCE 容许客户端查看,被修改后的http请求报文(因为中间通过了代理服务器,而代理服务器会修改我们的请求表文)
OPTIONS 客户端去咨询服务器端所能支持模式;
还有其他很多的扩展模式 -- 例如:MOVE LOCK 等等。
7、状态码(status)
100-199 表示服务器信息回应 100 101
200-299 表示成功的请求
常见的--200 ok 201 create
300-399 表示重定向
301 请求的URL指向的资源已经被删除:但在响应报文中通过首部Location指明了资源现在所处的新位置;这个是永久重定向:Moved Permently
302 与301相似,但是在响应报文中,通过Location指明了资源现在所处的临时新位置;Found
304 客户端发出了条件式请求,但是服务器发现客户端的缓存资源未曾发生改变,则通过响应状态码通知客户端:Not Modified
400-499 客户端错误状态码
401 需要输入账号和密码认证方能访问资源,Unauthorizad
403 请求被禁止:forbidden
404 服务器无法找到客户端请求的资源:Not Found
500-599 服务器端错误
500 服务器内部错误:Internal Server Error
502 代理服务器从后端服务器收到一条伪响应,Bad Gatway