失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【网络】解释Http协议 URL Http的格式。

【网络】解释Http协议 URL Http的格式。

时间:2022-07-27 05:30:32

相关推荐

【网络】解释Http协议 URL Http的格式。

一、HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)

协议就是计算机网络中的一种约定。所以http协议就是服务器和客户端/浏览器在应用层所定义的一种约定。是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

http协议格式

1.典型的请求数据包格式

GET /mix/76.html?name=kelvin&password=123456 HTTP/1.1Host: Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp;q=0.8Accept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8,en;q=0.6username=hgtz2222&password=22222222

首行:[方法]+[url]+[版本] http有很多的方法,最常用的方法就是get和post方法。两个方法都是将数据从客户端提交到服务端。get和post的区别。URL:下面详细解释版本:就是协议所使用的版本

请求头Header:从请求行的下一行开始到空行,包含请求的一些属性值。

都是用冒号分割的键值对,每组属性之间用 \n 分割,遇到空行表示请求头(Header)结束。

请求体body:空行后面的内容都是请求体(Body),允许为空字符串。如果存在,在Header中会有一个属性Content-length属性来标识Body的长度。

2.典型的响应数据报格式

HTTP/1.1 200 OKServer: nginxDate: Mon, 20 Feb 09:13:59 GMTContent-Type: text/plain;charset=UTF-8Vary: Accept-EncodingCache-Control: no-storePragrma: no-cacheExpires: Thu, 01 Jan 1970 00:00:00 GMTCache-Control: no-cacheContent-Encoding: gzipTransfer-Encoding: chunkedProxy-Connection: Keep-alive{"code":200,"notice":0,"follow":0,"forward":0,"msg":0,"comment":0,"pushMsg"}

首行:[版本号]+[状态码]+[状态码解释]

状态码是给计算机是别的,状态码解释是给用户看的.

响应头Header:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束响应体body:基本和请求体一样,注意如果服务器返回了一个html页面,那么html页面的内容就在响应体中.

常见的Header

Http如何分离数据和报头

利用空行,可以分离数据和报头,报头中的Content-Length属性值包含数据的总长度

二、认识url

全称是:UniformResourceLocator(统一资源定位符

我们常说的“网址”,其实就是url。以下面的一种URL为例:

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

从上面的URL可以看出,一个完整的URL包括以下几个部分:

协议部分:URL的第一个字符串代表的是使用的何中协议,在internet中可以使用多种协议,比如HTTP,FTP和HTTPS等等。本例中使用的是Http。(Http和Https协议的区别就是后者给所传输的数据加密了)域名部分。用“//”作为协议与域名的分隔符,一个URL也可以使用IP地址作为这一部分的内容。端口部分。用“:”作为端口与域名部分的分隔符。端口号就是指定该数据应该被哪一个应用程序所接收。端口号在URL中不是必须填写的,如果不写就选择默认端口号。虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

三、http工作过程

1. 输入URL。

不管是链接还是地址栏的输入,情况都是一样的。http协议已经规定了URL的格式,通过http协议中的域名或IP找到服务器。

2. 找到服务器

会有http的请求发送过来,告诉服务器我求你做什么?http协议规定了发送请求的格式,这个格式有三部分组成请求行、请求头、请求体

3. 处理请求

请求信息发送至服务器以后,服务器会获取传递过来的相关信息进行后端程序的处理。一般通过request.querystring获取URL传递过来的指,通过request.form获取POST传递过来的值,当然,也是可以获取到所有的其他请求过来的信息,如浏览器信息、cookie信息、操作系统信息等。获取相关的数据以后,服务器就会根据程序进行处理。

4. 响应请求

处理完成以后,服务器会做出响应,向浏览器输出相关信息。http对响应的格式也做出了规定,响应的信息主要包括响应行、响应头、响应体

如果觉得《【网络】解释Http协议 URL Http的格式。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。