首页 > 技术文章 > 2019-5-7

w410782823 2019-05-07 19:24 原文

HTTP

定义:

   Hyper Text Transfer Protocol(超文本传输协议)的缩写,

   是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

   HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

特点:

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。

灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。

 

URL

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“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”参数可以允许有多个参数,参数与参数之间用“&”作为分隔符

 

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line):请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.(包括 方法符号开头 以空格分开 后面跟着请求的URI 协议的版本)

请求头部(header):请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

空行:必须的

请求数据:请求数据也叫主体,可以添加任意的其他数据。

 

HTTP响应也由四个部分组成,

  状态行:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

  消息报头:消息报头,用来说明客户端要使用的一些附加信息

  空:空行,消息报头后面的空行是必须的

  响应正文:响应正文,服务器返回给客户端的文本信息。

 

HTTP状态码

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

 

 

 

 

 

 
 

 

 

 

 

推荐阅读