http学习笔记:网络模型&http初识

这里写图片描述
物理层主要作用是定义物理设备如何传输数据:电脑硬件,网卡端口,网线等
数据链路层在通信的实体间建立数据链路传输:软件服务通过物理的设备进行链路的连接
网络层为数据在节点之间的传输创建逻辑链路
传输层:tcpip和udp协议
向用户提供可靠的端到端的服务,数据如何去组装传输等都是在该层定义
传输层向高层屏蔽了下层数据通信的细节
应用层:实现了http协议,给应用软件提供了很多服务,构建于tcp协议之上,屏蔽网络传输相关细节。


http2:所有数据以二进制进行传输,同一个链接里面可发送多个请求而不需要按照顺序来。有了推送的概念,服务端可以主动发起数据传输。


http的三次握手
http没有连接的概念,只有请求和响应。需要一个TCP connection作为基础
http2里,tcp连接上面的http请求是可以并发的。同一个用户在对同一个服务器发起网页请求的时候只需要一个tcp连接。
tcp三次握手
这里写图片描述


URI:Uniform Resource Identifier/统一资源标识符
用来表示互联网上的信息资源,包含URL URN
URL:Uniform Resource Locator/统一资源定位器
http://user:pass@host.com:80/path?query=string#hash
‘http://’:表明是通过什么协议去访问互联网上的某些资源
‘user:pass’:留给用户认证用,现在很少使用
‘host.com’:定位资源所在服务器在互联网的位置,ip或者域名
‘:80’:每台服务器有很多端口用于web服务,不带端口默认80,为了方便用户记忆一般不带端口
‘path’:路由,用于找web服务里存放的资源,直接对应web服务目录结构下的路径
‘hash’:定位找到的资源的一个片段


http报文格式
请求报文
这里写图片描述
首行:
method:GET
URL:一般存放路由相关的东西,在发送这个请求的时候连接已经完成,只需要告诉服务器具体需要请求的资源就可以了
协议的版本:HTTP/1.0
Header:
包含了传输的数据所包含的内容
响应报文
这里写图片描述
首行:
协议版本
code:代表该请求目前所处的状态,200表示正常
code所代表的含义:OK
header和body之间用一个空行隔开


HTTP方法:用来定义对资源的操作,常用GET POST PUT DELETE,从定义上来讲有各自的语义。
HTTP CODE:定义服务器对请求的处理结果,各个区间的code有格子的语义
好的HTTP服务可以通过code来判断结果


创建一个简单的http服务

const http = require('http');

//创建一个简单的nodejs的服务
http.createServer(function(request, response){  //请求服务封装到request,返回内容时对response对象进行操作    
    console.log('request come', request.url);

    response.end('123');    //做出返回
}).listen(8888)             //监听一个端口用于访问

console.log('server listening is 8888');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值