1. http协议
- 1.1 http协议概述
- 协议: 就是事先的一种约定、规则、规范、标准。(租房合同、工作合同)
- HTTP协议(HyperText Transfer Protocol ):超文本传输协议,客户端(==浏览器==)与Web服务器端之间的交互协议。当浏览器和服务器进行数据交换时,html文件、图片、CSS、JS等都是基于HTTP协议进行传输的
- HTTP协议有两个版本: 1.0 和 1.1,目前使用的基本都是1.1
- 特点:
- 无连接: 浏览器向服务器发送一次请求,服务器响应一次,链接即结束
- 无状态: 无记忆。 服务器不能记住哪个浏览器访问过
- 1.2 请求协议/请求报文
- 请求报文分为3个部分: 请求行 请求头 请求体
- 请求头: 主机域名和端口号,客户端(浏览器)的信息等
- 请求体: 发送给服务器的数据,get和post都会通过请求主体将数据发送给服务器
- 可以使用Chrome tools 或者 firebug 来查看请求和响应的信息(F12)
- 主要请求项:
- accept-encoding: 浏览器可接受的压缩类型
- accept-language: 浏览器可接受的语言类型
- connection: keep-alive 持久化连接
- 案例
- 案例1: 访问 127.0.0.1:3000/index,查看请求行和请求头
 
- 案例2: 使用get方式提交数据,查看请求行、请求头和请求体
 
- Payload: 有效载荷

- 案例3: 使用post方式提交数据,查看请求行、请求头和请求体
 
- 在使用post方式向服务器提交数据时,必须将提交数据的内容格式设置为 application/x-www-form-urlencoded
- 1.3 响应协议/响应报文
- 主要响应项:
- content-type: 响应内容类型, content-type:text/html,服务器告诉浏览器,返回的这部分数据是文本类型,使用html方式来解析即可。
- content-length: 响应内容的长度 ,content-length:336, 从服务器返回给浏览器的数据总长度为336字节

- Connection: keep-alive 持久化链接
- Keep-Alive: timeout=5 默认B和S之间的链接时间是5秒,如果5秒钟还没有发起另一次请求,则断开链接
- content-length: 5 响应体的内容长度为 5 字节

- 1.4 常见状态码
- 常见的状态码如下: http://tool.oschina.net/commons?type=5
- 302 redirect|Found ----- 重定向 (页面跳转)
- 304 not modified ----- 未修改
- 403 forbidden ----- 禁止访问 (没有权限访问)
- 404 Not Found ----- 未找到页面
- 500 internal server error ----- 服务器内部错误 (可能是服务器本身有问题,或者==代码错的太离谱==)
- 1.5 req 和 res 对象
- req(request):请求对象

- res(response):响应对象
- setHeader(): 设置响应头信息 res.setHeader('content-type', 'text/html;charset=utf-8')
- end(): 将响应行、响应头、响应体一次性返回给浏览器
|