3-3 HTTP全解(HTTP基础概念、curl构造请求、Node.js读取请求、404页面、console.log调试

系统学习HTTP

  • 基础概念:请求和响应
  • 如何调试:用node.js,可以用log/debugger
  • 在哪查资料:Node.js,看Node.js文档
  • 标准定制者:HTTP规格文档-RFC2612

1.HTTP基础概念
1.1请求

  • 请求动词 路径加查询参数 协议名/版本
    1.请求动词:get(获取内容) post(上传内容)
    下例中:get是请求动词,没有路径和查询参数用/代替,HTTP协议/1.1版本
    在这里插入图片描述
    当输入搜索为:http://localhost:8888/?wd=hi
    请求格式为;
    在这里插入图片描述
  • Host:域名或IP
  • Accept: text/html 一般表示想接受什么内容(默认html、xhtml、xml等)
  • Content-type:请求体的格式
    一般请求的时候会上传一些内容,上传的内容放到请求体里
    上传内容可能是:文本、图片、文件
    具体内容就在此处写明
  • 回车
  • 请求体(也就是上传内容)
    上传内容cmder:curl -X POST --data ‘上传内容’ http://localhost:8888/
    查看上传内容:curl -v -X POST --data ‘上传内容’ http://localhost:8888/

在这里插入图片描述
1.1.1请求的细节

  • 三部分:请求行(如:GET / HTTP/1.1)、请求头(Host、Accept、Content-type)、请求体

  • 请求体在get请求一般是空的
    curl -v http://localhost:8888/(Get请求)

  • 大小写不敏感

1.2 响应

  • 协议名/版本 状态码 状态字符串
    状态码:默认是200,200就是正常
    状态字符串:一般没什么用,就是看响应是否正常

  • Content-type:响应体的格式

  • 回车

  • 响应体(也就是下载内容)
    在这里插入图片描述
    在这里插入图片描述
    1.2.1响应细节

  • 三部分:状态行、响应头、响应体

1.3用curl构造请求
curl -v -X POST http://localhost:8888/(v表示查看详细内容)

  • 设置请求动词
    1.改get为post:curl -v -X POST http://localhost:8888/
    注意大小写
  • 改路径和查询参数
    curl -v -X POST http://localhost:8888/xxxx?wd=hi
    其中xxxx表示路径,?wd=hi表示查询参数
    注意:锚点是不会发送到服务器的
  • 设置请求头
    curl -v -X POST -H ‘Accept: text/html’ http://localhost:8888/xxxx?wd=hi
    意思是:我要接受html 的内容
  • 设置请求体
    curl -v -X POST -H ‘Accept: text/html’ -H ‘content-Type: text/plain;charset=utf-8’ -d ‘请求体内容’ http://localhost:8888/xxxx?wd=hi
    请求体一般和post连用
    text/plain:表示纯文本,没有任何语法
    告诉浏览器:我要上传纯文本,编码是utf-8,上传的内容是“请求体内容”

1.4 用 Node.js 读取请求
设置什么就可以读到什么,可以通过设置读取到请求里的所有东西
在这里插入图片描述

  • 读取请求动词
    怎么知道是post还是get
console.log('有个傻子发请求过来啦!路径(带查询参数)为:' + pathWithQuery)
console.log("method:= ");
console.log(method);//GET或者POST

发送和读取请求;
curl http://localhost:8888
curl -X POST http://localhost:8888
在这里插入图片描述

  • 读取路径:console.log('有个傻子发请求过来啦!路径(带查询参数)为:' + pathWithQuery)
    pathWithQuery表示读取路径
    cmder:curl -X POST http://localhost:8888/?hihi=ha
    在这里插入图片描述
  • 读取请求头
console.log("request.headers");
  console.log(request.headers);

curl -H ‘Lzy: Good’ http://localhost:8888/
-H中为设置的请求头内容
在这里插入图片描述

  • 读取请求体

1.4.1 用Node.js设置相应
在这里插入图片描述

  • 设置响应状态码
    response.statusCode = 200
    其中200可以修改其他数字,只是系统不认识
  • 设置响应头
    response.setHeader(‘Content-Type’, ‘text/html;charset=utf-8’)
    引号内的内容就是响应头,可以自己修改
  • 设置响应体
    response.write(这是js内容)
    可修改追加内容,write是可以追加的,可以分为两个write

1.5 curl的功能
curl可以完成chrome的基本所有功能
curl相当于一个浏览器,只是看不见
下载图片:
curl 图片地址 > 1.jpg

1.6 404页面
响应码为404也是可以显示内容的(要自己设置)
不管状态码是什么内容,都跟主体内容没什么关系。
平时的404页面是因为没有设置任何内容,chrome发现404没有任何内容就自己做了一个网页显示

console.log调试大法

所有编程语言都适用的调试方法
把你认为对的变量打出来,看它到底是不是对的
通过console.log来找不断尝试找bug验证

console.log("path:"+path)

表示path后面的路径不能加 .
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值