HTTP之TCP与IP(三)

HTTP(传输内容格式)协议的底层是由TCP协议和IP协议构建的。

1.TCP 传输控制协议(Transmission Control Protocol) 怎么传输协议

2.IP 网络协议(Internet Protocol) 如何联接

如图所示:
这里写图片描述
以路与其为界限,分为内外网。
路由器在外网会有一个外网IP(不固定可变得),在内网也有一个内网IP(固定的,一般路由本身的内网IP是192.168.1.1(可以通过http://192.168.1.1来查看路由器),给其他成员内网IP格式:192.168.xxx.xxx)
内网之间可以互相访问,外网之间可以互相访问,但内外网之间只能通过路由器(网关)为媒介才能互相访问
出内外网IP还有两个特殊的IP;本地IP:127.0.0.1.永远表示自己,ping 127.0.0.1 127.0.0.1=localhost(hosts文件里有一行127.0.0.1 localhost,因此两者是一一对应的)
另一个特殊IP:0.0.0.0 他不表示任何设备。

TCP知识点:
—TCP与UDP

TCP 协议的作用是,保证数据通信的完整性和可靠性,防止丢包

TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。

TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。

TCP对应的协议和UDP对应的协议
TCP对应的协议:

(1) FTP:定义了文件传输协议,使用21端口。

(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。

(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。

(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。

(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:

  • 1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
  • 2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
  • 3) TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

1.TCP面向连接,UDP无连接
2.TCP通过字节流传输,因此会有粘包问题,UDP通过数据报传输,不会粘包
3.TCP安全可靠,效率较低,UDP安全性一般,不可靠,效率高
三次握手
为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。
—.HTTP连接
1.HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
2.HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

  • 1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

  • 2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

3.由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常 的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道 客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

总结

上面都是 TCP/IP 相关的知识,如果你记不住,就记住下面这句话:

使用 HTTP 协议访问另一个 IP 时,必须同时提供 IP 和端口号,缺一不可。

那么问题来了

我访问 http://qq.com 时并没有提供端口号,为什么我依然可以访问

答:因为浏览器帮你加了默认端口号 80

3.端口
访问一台设备除了使用使用TCP/UDP协议,指定IP以外,还需要指定端口。
端口十一个编号,且一个端口对应一个服务。
一个服务器上右65535个端口,因此可以同时提空多种服务。0-1023是留给系统使用的,普通用户使用其他端口。
80 HTTP
443 HTTPS
21 FTP
总结:使用http协议访问另一个IP时,必须同时提供IP和端口。
浏览器会默认家端口号。
4.Node.js 服务器

*1编写一个脚本 serve.js 内容是:
*2运行脚本 node serve.js 你指定的端口号
服务器脚本代码见github:
!!!!!!!!!!!注意:服务器代码中请求和相应的格式不能少
根据请求返回不同的响应
响应 /
响应 /xxx
响应 404
响应 /xxx.html
响应 /xxx.frank
再次强调,后缀是废话。文件内容是有 HTTP 头中的 Content-Type 保证的
响应 /xxx.css
响应 /xxx.js
HTTP 路径不是文件路径!!!/xxx.html 不一定对应 xxx.html 文件
HTTP 路径不是文件路径!!!/xxx.html 不一定对应 xxx.html 文件
HTTP 路径不是文件路径!!!/xxx.html 不一定对应 xxx.html 文件

猜你喜欢

转载自blog.csdn.net/wang_liuyong/article/details/81104697