欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-16 08:16:12
...

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


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


http的三次握手
http没有连接的概念,只有请求和响应。需要一个TCP connection作为基础
http2里,tcp连接上面的http请求是可以并发的。同一个用户在对同一个服务器发起网页请求的时候只需要一个tcp连接。
tcp三次握手
http学习笔记:网络模型&http初识


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报文格式
请求报文
http学习笔记:网络模型&http初识
首行:
method:GET
URL:一般存放路由相关的东西,在发送这个请求的时候连接已经完成,只需要告诉服务器具体需要请求的资源就可以了
协议的版本:HTTP/1.0
Header:
包含了传输的数据所包含的内容
响应报文
http学习笔记:网络模型&http初识
首行:
协议版本
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');
相关标签: http