记得有一次面试的时候,面试官就让我谈谈对http的认识,因为简历当中我是这么写的“基本掌握http”,其实那时候的我对http的认识可以说为0,所以当时我就很不好意思的回答说不大清楚,时至今日我才发现我对http的认识只是冰山一角,下面就谈谈我个人对http肤浅的认识:
1.首先http(超文本传输协议)其处于OSI7层模型中的应用层,OSI7层模型分别为应用层-》表示层-》会话层-》传输层-》网络层-》数据链路层-》物理层,对于这7层模型,我们应该大致的了解每一层是干嘛的,这个是必须的,在此就不一一说明。
2.http事物是指从客户端(IE)向服务器端发送http请求,再由服务器将响应的内容返发回给客户端的一个过程。
3.http链接是通过tcp链接,首先客户端会打开一条连向服务器端的链接,然后开始发送http请求,接着由服务器返发响应的内容,当客户端接受后就断开此链接,这样一次客户端与服务器端的通信就结束了。
4.http报文:由客户端向服务器端发送的http请求和从服务器端发送到客户端响应的内容都是http报文,其格式为:起始行、头部(HEAD)、主体(BODY)
对于报文的理解,在这里向大家推荐一个工具叫:fiddler。通过它可以详细的看到http报文的组成结构和具体的内容。
5.http中的方法分为5种:增(PUT)、删(DELETE)、改(POST)、查(GET)、HEAD
6.MIME(多用途网络邮箱扩展)类型:对象类型/特定子类型,如:image/png,通过fiddler可在http请求的起始行中看到。
7.发送http请求的目的是为了请求某一资源,然后由服务器返回客户端需要的资源,客户端(IE)通过解析将其显示出来,这里的资源是如何标识的呢?其实是通过URI(Uniform Resource Identifier)统一资源标识符,其主要有2中形式:URL(统一资源定位符)和URN(统一资源名称),目前最常用的是URL。那如何通过URL我们就可以找到某一资源了呢?
举例说明如下:
当我们在客户端输入如下地址:
http://www.cnblogs.com/***/****.html
客户端首先会解析www.cnblogs.com所对应的IP地址为42.121.252.58(即