问题描述
用户打开浏览器输入目标地址(比如http://www.csdn.net),那么接下来发生什么事情呢?
解答
找工作,忘了哪里的笔试题目了,有这么一个题。今天搜了一下,发现有不少写的很好的,我就借此机会总结一下。也备着后序找工作用。
访问过程
- 浏览器首先查询本机系统,获取到主机名(域名)的IP地址
- 本机查询不到时,发起DNS请求,通过DNS解析获取到主机名(域名)对应的IP地址
- 使用查询到的IP地址,直接访问目标服务器
浏览器发送HTTP请求
HTTP请求包括三部分:请求行、消息报头、请求正文
从请求信息中获取到Client想要访问的服务器主机名
- 从请求信息中获取Client想要访问的Web应用(即提供浏览器访问的程序)
- 从请求信息中获取Client想要访问的Web资源(文件、图片、视频、文本等)
- 读取相应的主机下的web应用、web资源
- 读取Web资源数据,创建HTTP响应
- 服务器返回HTTP响应
- Client浏览器解析并返回资源,显示结果
常用端口号
0/TCP,UDP 保留端口;不使用(若发送过程不准备接受回复消息,则可以作为源端口)
20/TCP,UDP 文件传输协议 - 默认数据端口
21/TCP,UDP 文件传输协议 - 控制端
22/TCP,UDP SSH (Secure Shell) - 远程登录协议,用于安全登录文件传输(SCP,SFTP)及端口重新定向
23/TCP,UDP Telnet 终端仿真协议 - 未加密文本通信
25/TCP,UDP SMTP(简单邮件传输协议) - 用于邮件服务器间的电子邮件传递
53/TCP,UDP DNS(域名服务系统)
56/TCP,UDP 远程访问协议
69/UDP TFTP(小型文件传输协议)
80/TCP HTTP(超文本传输协议)- 用于传输网页
81/TCP HTTP预备(超文本传输协议)
107/TCP 远程Telnet协议
109/TCP POP(Post Office Protocol),“邮局协议”,第2版
110/TCP POP3(“邮局协议”,第3版)- 用于接收电子邮件