node中的http基本概念

344 阅读2分钟

http

http是什么

http是应用层协议,是在传输层的基础上加了一些自己的内容,比如header等

七层协议(OSI协议层)

(物,数),网,传,(绘,表,应) , 也可以划分为四层结构

  • 应用层:http, ftp, dns
  • 传输层:tcp(可靠),udp(不可靠)
  • 网络层:寻址,IP选择传输路线 (通过ip地址和mac地址)(使用ARP协议凭借mac地址进行通信)
  • 链路层:网络链接硬件部分

http

请求头 请求体 请求行

响应头 响应体 响应行

特点
  • http请求是不保存状态,一般使用cookie来管理状态
  • 为了防止每次请求造成的链接,断开,采用保持链接的方式keep-alive
  • 以前发送请求后需要等待并收到响应,才能发下一个,现在都是管线化的方式 (js css 可以并发请求 6 2) cdn

缺点

  • 明文发送请求
  • 不验证通信方的身份
  • 无法验证内容的完整性(内容可能被篡改)

通过SSL(安全套阶层)建立安全通信线路HTTPS(超文本传输安全协议)

常见请求状态码

  • 1 ws
  • 2 200(请求成功), 204(请求成功,没有请求体), 206(部分请求)
  • 3 301(永久重定向), 302(暂时重定向), 304(服务端缓存), 307(临时重定向)
  • 4 400(请求失败), 401(用户没登录), 403(用户登录但是没权限), 404(没找到资源), 405(方法不存在)
  • 5 服务器异常, 500, 502, 503

请求方式

  • restful api 根据不同的请求方法来做响应(相同的路径,不同的方法来区分)
  • get post delete put (options)
  • options跨域用(默认先访问一次,一个预检过程,能访问则继续访问)
  • 简单请求不会发options

简单请求只用get和post, 如果在其上面加上一些自己的header则变为复杂请求。其他的都是复杂请求。

url uri

  • url 唯一定位符,如家庭住址
  • uri 唯一标识符,如身份证号

一个完整的请求地址

username:password@www.baidu.com:80/index.html?…

协议://用户权限@域名: 端口号/资源? 查询参数