速读,五分钟深入了解HTTP

一、HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,“超文本”即不仅仅是文本,还可以传输html 文件, 图片文件等 。
HTTP协议工作于客户端-服务端架构为上 。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求 。Web服务器根据接收到的请求后,向客户端发送响应信息 。
二、主要特点

简单快速:客户向服务器请求服务时,只需传送请求方法和路径 。请求方法常用的有GET、HEAD、POST 。每种方法规定了客户与服务器联系的类型不同 。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快 。
灵活:HTTP允许传输任意类型的数据对象 。正在传输的类型由Content-Type加以标记 。
无连接:无连接的含义是限制每次连接只处理一个请求 。服务器处理完客户的请求,并收到客户的应答后,即断开连接 。采用这种方式可以节省传输时间 。
无状态:HTTP协议是无状态协议 。无状态是指协议对于事务处理没有记忆能力 。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大 。另一方面,在服务器不需要先前信息时它的应答就较快 。
支持B/S及C/S模式 。
三、基础概念URLURI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL 。
URI(Uniform Resource Identifier,统一资源标识符)
URL(Uniform Resource Locator,统一资源定位符)
【速读,五分钟深入了解HTTP】URN(Uniform Resource Name,统一资源名称)

速读,五分钟深入了解HTTP

文章插图
 
三者的区别
URI用来唯一的标识一个资源 。Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来标识的 。URI一般由三部组成: ①访问资源的命名机制 ②存放资源的主机名 ③资源自身的名称,由路径表示,着重强调于资源 。
URL是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源 。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等 。URL一般由三部组成: ①协议(或称为服务方式) ②存有该资源的主机IP地址(有时也包括端口号) ③主机资源的具体地址 。如目录和文件名等
URN是通过名字来标识资源,比如mailto:JAVA-net@java.sun.com 。
一个URL的例子http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分: 该URL的协议部分为“http:”,这代表网页使用的是HTTP协议 。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议 。在"HTTP"后面的“//”为分隔符
2.域名部分: 该URL的域名部分为“www.aspxfans.com” 。一个URL中,也可以使用IP地址作为域名使用
3.端口部分: 跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符 。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
4.虚拟目录部分: 从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分 。虚拟目录也不是一个URL必须的部分 。本例中的虚拟目录是“/news/”
5.文件名部分: 从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分 。本例中的文件名是“index.asp” 。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
6.锚部分: 从“#”开始到最后,都是锚部分 。本例中的锚部分是“name” 。锚部分也不是一个URL必须的部分
7.参数部分: 从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分 。本例中的参数部分为“boardID=5&ID=24618&page=1” 。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符 。
请求和响应报文1. 请求报文
速读,五分钟深入了解HTTP

文章插图
 
请求报文由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成 。


推荐阅读