zoukankan      html  css  js  c++  java
  • HTTP协议

    HTTP协议的概念

    超文本传世协议(Hyper Text Transfer Protocol) 规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。

    报文

    在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。

    请求方式(Request Methods): 

    • GET 请求数据
    • POST 发送数据
    • req.method 获取请求方式
    • req.url 获取请求地址
    • req.headers 获取请求报文
    • Reponse: 显示的是服务器响应给客户端的内容
    • // 请用系统模块
      const http = require('http')
      // 创建Web服务器
      const app = http.createServer()
      // 当客户端发送请求的时候
      app.on('request', (req, res) => {
        // 获取请求的方式 req.methods
        console.log(req.method) //  获取请求方式
        console.log(req.headers) // 获取请求报文
        console.log(req.url) // 获取请求地址
        if (req.url == '/index' ) {
          res.end('index')
        } else if ( req.url == '/login') {
          res.end('login')
        } else {
          res.end('not found')
        }
        // 响应
        return res.end('hello word')
      })
      // 监听3000端口
      app.listen(3000)
      console.log('服务器启动成功,监听端口:3000')
      

    响应报文

    1. HTTP 状态码

    • 200 请求成功
    • 404 请求的资源没有找到
    • 500 服务器端错误
    • 400 客户端请求语法错误

    2. 修改状态码

    res.writeHead(500)
    

    3.  res.writeHead() 内容类型

    • text/html
    • text/css
    • application/javascript
    • image/jpeg
    • application/json 

    4.req.url () 请求地址

    5.url.parse() 处理URL地址

    • 参数一:要解析的url地址
    • 参数二:将查询参数解析成对象形式
    const url = require('url')
    
    url.parse(req.url, true)

    6.路由

     1 app.on('request', (req, res) => { 5 let {pathname} = url.parse(req.url)
     6 
     7   if (pathname == '/index' ) {
     8     res.end('index')
     9   } else if ( pathname == '/login') {
    10     res.end('login')
    11   } else {
    12     res.end('not found')
    13   }
    14 })

    7. 静态资源

    服务器端不需要处理,可以直接响应给客户端的资源就是静态资源,例如css、javascript 、image

    8. 动态资源

    相同的请求地址不同的响应资源,这种资源就是动态资源。

  • 相关阅读:
    1405ST软件测试课的要求补充说明
    软测实验课安排和考试
    Asp.Net 4.0 FormAuthentication 原理
    微信支付-“申请退款”接口遇到curl出错,错误码:58
    前端资源构建-Grunt环境搭建
    微信服务号开发-获取用户位置信息
    微信支付开发-当前页面的URL未注册
    Using Redis to store php session
    nginx performance monitor
    thinkphp nginx php-fpm url rewrite 导致 404 错误
  • 原文地址:https://www.cnblogs.com/liea/p/11219114.html
Copyright © 2011-2022 走看看