Web的工作方式
-
一个完整的访问方式是这样的:
用户—(操作)—>客户机
客户机 —(TCP/IP)—>服务器
客户机—(HTTP请求包)—>服务器
服务器—(HTTP应答包)—>客户机
客户机—(前端渲染)—>用户 -
http连接不是持久性的,每次请求完成后会自动断开连接,等待下一次的请求
URL以及DNS服务
- URL (Uniform Resource Locator)同意资源定位符,用来描述Internet的资源
- URL包含如下内容
| 内容 | 描述 |
内容 | 描述 |
---|---|
scheme | 指定底层的协议http/https/ftp… |
host | 服务器的IP地址或者域名 |
port | 使用的端口,默认为80 |
path | 访问资源的路径 |
query-string | 发送给服务器的数据包 |
anchor | 锚 |
- DNS为域名服务器,用来将域名和IP地址进行一 一对应
它的工作方式是这样的
- 一般情况下客户端查找域名对应的IP地址使用如下方法
hosts文件—>本地DNS—>TCP/IP中首选的DNS服务器(如果解析得到的则有权威性,如果缓存得到的不具有权威性)—>(如果有DNS转发则会转发到另一个DNS)—>根DNS服务器—>根的下一级服务器—>…
HTTP协议
- HTTP 协议是Web工作的核心
- HTTP协议工作在TCP协议之上的,因此如果TCP被攻击,那么HTTP也会断
- HTTP协议一般用TCP的80端口。、
- 在HTTP连接时,总是由客户端发起的,服务端不能主动去与客户端联系,也不能给客户端发出一个回调连接,双方都可以提前中断连接。
- HTTP协议是无状态的,因此同一个客户端这次 连接和上次连接没有对应关系。因此为了维持关系,引入了cookie的机制。
HTTP请求包
- Requst包的结构分为三部分。
Request line
Request header
body
GET /domains/example/ HTTP/1.1
// 请求行: 请求方法 请求 URI HTTP 协议/协议版本
Host:www.iana.org
// 服务端的主机名
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
// 浏览器信息
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
// 客户端能接收的 mine
Accept-Encoding:gzip,deflate,sdch
// 是否支持流压缩
Accept-Charset:UTF-8,*;q=0.5
// 客户端字符编码集
// 空行,用于分割请求头和消息体
// 消息体,请求资源参数,例如 POST 传递的参数
HTTP和服务器交互的方法
-
四种方法:GET、POST、PUT、DELETE
-
对应方法:查、增、改、删
-
GET请求的消息体为空,而POST请求有消息体,POST请求更安全
HTTP响应包
- 响应包为Response包
- 响应包的结构是这样的
HTTP/1.1 200 OK // 状态行
Server: nginx/1.0.8 // 服务器使用的 WEB 软件名及版本
Date: Tue, 30 Oct 2012 04:14:25 GMT // 发送时间
Content-Type: text/html // 服务器发送信息的类型
Transfer-Encoding: chunked // 表示发送 HTTP 包是分段发的
Connection: keep-alive // 保持连接状态
Content-Length: 90 // 主体内容长度
// 空行 用来分割消息头和主体