我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

王龙飞 2023-1-31

[复制链接]
浅夏ζ 发表于 2023-2-16 18:22:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
  • 1. http协议
    • 1.1 http协议概述
      • 协议: 就是事先的一种约定、规则、规范、标准。(租房合同、工作合同)
      • HTTP协议(HyperText Transfer Protocol ):超文本传输协议,客户端(==浏览器==)与Web服务器端之间的交互协议。当浏览器和服务器进行数据交换时,html文件、图片、CSS、JS等都是基于HTTP协议进行传输的
      • HTTP协议有两个版本: 1.0 和 1.1,目前使用的基本都是1.1
      • 特点:
        • 通常是基于 B/S 结构软件的
        • 无连接: 浏览器向服务器发送一次请求,服务器响应一次,链接即结束
        • 无状态: 无记忆。 服务器不能记住哪个浏览器访问过

      • HTTP协议主要分为两大部分:
        • 请求:  访问服务器的任何一个文件都是一次请求
        • 响应:  服务器处理请求,将结果返回给浏览器


    • 1.2 请求协议/请求报文
      • 请求报文分为3个部分:  请求行   请求头   请求体
        • 请求行:  请求方式、请求URL地址、协议版本号
        • 请求头:  主机域名和端口号,客户端(浏览器)的信息等
        • 请求体:  发送给服务器的数据,get和post都会通过请求主体将数据发送给服务器
        • 可以使用Chrome tools 或者 firebug 来查看请求和响应的信息(F12)

      • 主要请求项:
        • host: 主机名和端口号,80端口默认不显示
        • accept:浏览器可接受的程序/文件类型
        • 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 响应协议/响应报文
      • 响应报文也分为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
        • 200 ok   -----   请求成功
        • 302 redirect|Found  ----- 重定向 (页面跳转)
        • 304 not modified ----- 未修改
        • 403 forbidden   -----  禁止访问 (没有权限访问)
        • 404 Not Found  -----  未找到页面
        • 500 internal server error  ----- 服务器内部错误 (可能是服务器本身有问题,或者==代码错的太离谱==)


    • 1.5 req 和 res 对象
      • req(request):请求对象
        •    url: 保存了浏览器的url地址
        •    method: 请求方式
        •    headers: 请求头信息

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










回复

使用道具 举报

关注0

粉丝0

帖子76

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026