一、简介
1、含义
HTTP即Hyper Text Transfer Protocol (超文本传输协议),,用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
它基于TCP/IP通信协议来传递数据 (HTML 文件,图片文件,查询结果等)。
2、传输方式
浏览器作为客户端,通过URL向web服务器发送请求,再响应客户端。
二、URL
1、含义
HTTP使用统一资源标识符 (Uniform Resource Ildentifers,URI)来传输数据和建立连接。
URL是一种特殊类型的URI,含用于查找某个资源的足够的信息URL。
2、组成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
协议+域名+端口+虚拟目录+文件名+锚+参数部分
虚拟目录:从域名后的第一个“/” 开始到最后-个“/”为止,是虚拟目录部分。
即/news/
文件名:从域名后的最后一个“/”开始到“?”为止,
如果没有“?”则是从域名后的最后一个“/”
开始到"#"为止,
如果都没有, 那么从域名后的最后一个“/"开始到结束, 都是文件名部分,
如果省略该部分,则使用默认的文件名。
即/index.asp/
参数:“?”到“#”之间为参数部分,中间用“&”分隔。
即 boardID=5&ID=24618&page=1
3、URI和URL的区别
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
用于定位HTML文档、图像、视频等等。
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。
URL是uniform resource
locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,且还指明了如何locate这个资源。
用于描述信息资源的字符串。
①协议(或称为服务方式)
②存有该资源的主机P地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等
三、请求
Request请求
1、组成
请求行(request line)+请求头部(header)+空行+请求数据
2、示例
GET
(1) 请求行:说明请求类型,访问的资源和http版本。
GET /562f25980001b1b106000338.jpg HTTP/1.1
(2) 请求头:说明服务器要使用的附加信息。
Host指出请求目的地User-Agent
POST
(3) 空行
(4) 请求数据
Response响应
(1) 状态行:HTTP版本号+状态码+状态消息。
(2) 消息报头:说明客户端要使用的附加信息。
(3) 空行
(4) 响应正文:服务器返回的文本。
1、状态码
1xx:指示信息——请求已接收,继续处理
2xx:成功——请求已被成功接收、理解、接受
3xx:重定向——须进行更进一步的操作
4xx:客户端错误——请求有语法错误/请求无法实现
5xx:服务器端错误——服务器未能实现合法的请求
2、请求方法
GET:请求指定页面,返回实体主体。
HEAD:获取报头
POST:提交数据进行处理(提交表单或文件)
HTTP工作原理(三次握手)
在浏览器地址栏键入URL,按下回车之后会经历以下流程:
1、浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;(第一次握手:向服务器请求解析IP)
2、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;(第二次握手:回应客户端 已收到解析请求)
3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP
三次握手的第三个报文的数据发送给服务器;(第三次握手:向服务器发出读取文件请求)
4、服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器;
5、释放TCP连接;
6、浏览器将该html文本并显示内容。