1、从输入网址开始:
网址准确的来说应该叫URL(Uniform Resource Locator 统一资源定位符)。网址除了我们经常见到的“http:”(超文本传传送协议)开头的以外还包括例如“ftp:”“file:”“mailto:”等。不同的开头对应访问的服务器也各不同,例如访问Web服务器时用“http:”,而访问FTP(File Transfer Protocol 文件传送协议)服务器时用“ftp:”。
下面是常见的几种URL:
1、用HTTP协议访问Web服务器时:
http://user(用户名可省略):password(密码可省略)@www.glasscom.com(Web服务器域名):80(端口号可省略)/dir/file1.html(文件的路径名)
2、用FTP协议下载和上传文件时:
ftp://user(用户名可省略):password(密码可省略)@ftp.glasscom.com(FTP服务器域名):21(端口号可省略)/dir/file1.html(文件的路径名)
3、读取客户端计算机本地文件时:
file://localhost(计算机名可省略)/c:/path/file1.zip(文件的路径名)
4、发送电子邮件时:
mailto:tong@glasscom.com(邮件地址)
5、阅读新闻组的文章时:
news:comp.protocols.tcp-ip(新闻组名)
2、浏览器先要解析URL:
其实这一步骤就应对的结果就是上面各类URL中的标注,浏览器只有对URL进行解析之后,才会通过URL中各个部分的内容进行不同的操作。
3、生成HTTP请求消息:
对URL进行解析之后,浏览器就确定了Web服务器和文件名,接下来就是根据这些信息来生成HTTP请求消息。
首先,请求消息的第一行称为请求行,它会告诉Web服务器应该进行怎样的操作。这一步骤的关键在于浏览器的工作状态。除了一开始讲到的通过浏览器输入网址以外还有其他情况可以向Web服务器发送请求消息。例如点击网页中的超级链接,或者在表单的情况下点击按钮。不同的场景下浏览器告知Web服务器的操作方式可能就会不同。如果是通过浏览器输入网址的形式,那么应该使用GET方法;如果是点击超级链接的方式也是GET方法;如果是表单,在HTML源代码中会在表单的属性中指定使用哪种方法,可能是GET也可能是POST。
生成的HTTP请求消息的第一行内容例如:
GET(请求方法) /cgi/sample.cgi?Field1=ABCDEFG&SendButton=SEND(路径名) HTTP/1.1(HTTP协议版本)
第二行开始就是HTTP的消息头,其中包含了多个字段和值用来控制HTTP请求,具体的字段名这里就不一一赘述。
4、发送请求后会收到响应:
Web服务器在收到请求之后会返回响应消息,其格式与请求消息相同,差别只在第一行上,第一行的内容为状态码和响应短语,用来表示执行结果是成功还是出错。
返回响应消息之后,浏览器会将数据提取出来并显示在屏幕上或者进行其他处理。
HTTP状态码概要:
状态码 | 含义 |
1XX | 告知请求的处理进度 |
2XX | 成功 |
3XX | 表示需要进一步操作 |
4XX | 客户端错误 |
5XX | 服务器错误 |