Linux 7 web服务基础知识
https://www.cnblogs.com/pyyu/p/9467256.html
一、DNS域名解析
1.首先用户在浏览器中输入一段url www.oldboyedu.com
2.(dns解析的第一步)浏览器会首先在你的机器上,寻找一个hosts文件,这是本地测试dns解析文件
2.(第二步)如果hosts文件未指定解析记录,浏览器就去机器的dns缓存中寻找解析记录 LDNS(local dns缓存)
3.(第三步)如果缓存也没有记录,去指定的dns服务器中(手动配置,linux底下/etc/reslove.),去网络中寻找解析记录
/etc/resolv.conf
写入两条dns记录
主dns服务器 nameserver x.x.x.x
备dns服务器 nameserver x.x.x.x
linux解析dns的命令
nslookup(nameserver lookup 域名服务器查找 )
4.dns服务器会将查找到的ip和域名对应的记录,返回给浏览器,浏览器就知道访问的ip服务器是谁了
5.此时操作系统会将这条解析记录,写入到本地dns缓存中,LDNS
二、HTTP协议
HTTP协议是超文本传输协议,其最重要的是www服务,也叫web服务。
web服务的默认端口是80,另一个加密web服务https默认端口是443,主要用于支付、网银等请求。
版本:
http协议诞生以来有若干个版本,主要是http/1.0 http/1.1 http/1.0规定浏览器和服务器只能保持短暂的连接,浏览器的每次请求都需要和服务器建立一个TCP连接,服务器完成请求后即断开TCP连接,服务器不跟踪每个链接,也不记录请求 http/1.1是对HTTP的缺陷进行重点修复,从可扩展性,缓存,带宽优化,持久连接,host头,错误通知等访问改进。 http/1.1支持长连接,增加了更多的请求头和响应头信息,例如配置请求头的Connection的值为keep-alive,表示请求结果返回后保持连接
请求方式:
1 GET 请求指定的页面信息,并返回实体主体。 2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。 5 DELETE 请求服务器删除指定的页面。 6 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 7 OPTIONS 允许客户端查看服务器的性能。 8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
状态码:
HTTp状态码表示web服务器响应http请求状态的数字代码 常见状态码以及作用是 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误
状态码的查看:
curl -I www.oldboyedu.com Server: OES Date: Sun, 12 Aug 2018 04:18:24 GMT Content-Type: text/html Content-Length: 152 Connection: keep-alive Location: https://www.oldboyedu.com/
三、网站流量术语
1、IP
IP是指独立IP数,不同的公网IP访问网站时所记录的总数量,同一个IP一天内只会被记录一次。
2、PV(page view)
PV指页面浏览量,不管客户端是否相同,也不管IP是否相同,只要页面被访问就记录一次,这是一种统计标准但是并不准确,不能表示有多少人访问网站。
3、UV(unique visitor)
UV指同一个客户端访问被记为一个访客,一天内指记录一次,是以cookie等技术来统计,存在误差。
4、并发数
并发数指系统同时能处理的请求数量,反应了系统的负载能力。
5、响应时间
指一个请求从发送到接收响应所花费的时间
6、QPS(query per second)
每秒查询数,服务器在一秒内能处理的请求数量,数值越大代表负载能力越强。
四、websocket协议
websocket是借鉴socket的形式,对http协议的一种升级。由于http协议是短连接、无状态的,所以如果客户端想要实时监听数据是否更新需要不断地向服务器轮询,而这样的轮询都会携带一大串请求头,服务端每次都得分析同样的内容,占用链接资源,这种方式效率太低。而websocket提供了一种更好的方式,socket就是当服务端与客户端建立连接后就没有了主次的概念,可以互相发送消息,而http协议在一次收发后就会断开,服务端也不能主动发送消息,websocket让客户端浏览器发送的请求变成一个长请求,不再需要一直向服务端发送询问,而是让服务端主动的发送更新信息,这样就解决了轮询的资源占用问题。
websocket协议流程
websocket是一种全新的应用层协议,但是也是依据http协议诞生的,当我们想发送websocket请求时,会发送一个这样的报文:
这个请求是一个http的get请求,但是有一个upgrade,告诉服务器需要将协议升级为websocket协议,如果服务端支持websocket协议,会返回一个响应:
表示同意,以上的这个过程都是通过http协议完成的,称为websocket协议的握手,这样服务端和客户端就建立了websocket连接,有一条长连接通道,他们可以互相发送消息,不再需要每次都重新建立连接。
websocket与socket运作方式不同点在于,如果想要完成一个点对点发送消息的应用,websocket需要将两个客户端都连接到服务器,由服务器来转发消息,而socket可以基于udp协议,直接实现端对端的传输。