1 认识http
1-1) HTTP是HyperText Transfer Protocol(超文本传输协议) HTTP是基于IP协议的.
- HyperText:超文本,就是我们的那些标签标示的内容
- Transfer:传输-从浏览器端到服务器和从服务器到浏览器端
- Porotocol:协议,其实就是规范,规定上述两个传输过程必须遵循固定的格式
1-2) web架构
- 浏览器端,HTML+CSS+JS
- 服务器端,服务器的语言(js),数据库(mysql,mongodb)
- HTTP
1-3) HTTP分成两端
- 浏览器端到服务器端,请求,HTTP请求
- 服务器端到浏览器端,响应,HTTP响应
1-4) 都是由三个部分构成(响应和请求)
- 对于HTTP请求,包括请求行,请求头信息,请求正文
- 对于HTTP响应,包括响应状态行,响应头信息,响应正文
1-5) 请求的两个方式(get/post)
- get:直接使用URL,然后访问,通过输入URL获取点击超链接,都是get请求
- post:使用表单提交数据,烦死表单提交的数据,通常都是post请求
1-6) 请求和响应
- 每一个第一次请求一定是当前页面本身,然后才是这个页面中引入的这些资源,这些资源,包括html,css,js和图片成为静态资源
- 每一个请求,有包含请求和响应
- 为了提高页面的载入速度,我们可尽量减少http的请求(比如图片的合并-精灵图)
图片2 - 对于HTTP请求,包括请求行,请求头信息,请求正文
- 对于HTTP响应,包括响应状态行,响应头信息,响应正文
2 Server对象
2-1)服务器对象的创建,提供http服务
2-2)创建:使用http模块的createServer方法
- 对于HTTP请求,包括请求行,请求头信息,请求正文
- 对于HTTP响应,包括响应状态行,响应头信息,响应正文
3 serverResponse对象
3-1) res就是ServerRespnose对象,服务器端的响应对象
- 用来写http响应,包括响应状态行,响应头信息和响应正文
- 是自动创建好的,作为回调函数的参数,自动创建好一个对象
- 在createServer方法中的回调函数中,作为第二个函数来出现
- 类似于DOM编程中的事件对象
3-2) 重要方法和属性
- writeHead:响应头写入请求 //只能调用一次
- write:把数据写入响应正文
- end:完成响应,可以同时写入数据 //只能调用一次
- setHeader:设置特定的HTTP头信息
- getHeader:获取在响应头指定的HTTP头信息
4 IncomingMessage对象
IncomingMessage是在请求和响应时,自动生成的一个对象,其作用是获取双方(server和client)的一些信息
4-1) 站在incomingMessage就是createServer回调函数中的req参数
4-1) 重要方法和属性
- httpVersion:请求/响应的HTTP版本
- headers:请求/响应头信息
- rawHeaders:原始请求/响应头请求
- method:请求方式
- url:请求的URL字符创
- statusCode:响应状态码
5 URL路由
URL:Uniform Resource Locator(统一资源定位器)
5-1)