HTTP协议运行原理

本文内容:

1.http的运行原理过程
2.http的请求过程
3.浏览器与服务器之间传递数据的方法相应状态
4.http的请求和响应报文

1.http的运行原理过程

1)、Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。
2)、若该服务器在特定端口(通常是TCP 80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接。
3)、服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。
4)、Web浏览器接收到文档后,就将它显示出来。
5)、当客户端浏览完成后,就断开与服务器的连接。

在这里插入图片描述

2.http的请求过程

在这里插入图片描述
在这里插入图片描述

3.浏览器与服务器之间传递数据的方法相应状态

在这里插入图片描述
常见状态代码、状态描述的说明如下。用于搭建启动http协议排错

200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server`` Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

http的请求报文和响应报文

在这里插入图片描述

HTTP请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。
在这里插入图片描述
1).请求行,请求行分为三个部分:请求方法、请求地址和协议版本

请求方法:
	HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。
	最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。
请求地址
	URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。
	组成:<协议>//<主机>:<端口>/<路径>
	端口和路径有时可以省略(HTTP默认端口号是80

在这里插入图片描述
2).请求头部请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。
在这里插入图片描述
请求头部的最后会有一个空行,表示请求头部结束,

3).请求数据
可选部分,比如GET请求就没有请求数据。
下面是一个POST方法的请求报文:

POST  /index.php HTTP/1.1    请求行
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded  空行mimeusername=aa&password=1234  请求数据

这里通过抓包来看:
在这里插入图片描述

HTTP响应报文

在这里插入图片描述
HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。

1).状态行由3部分组成,分别为:协议版本,状态码,状态码描述。
其中协议版本与请求报文一致,状态码描述是对状态码的简单描述,
所以这里就只介绍状态码。状态码状态代码为3位数字。

扫描二维码关注公众号,回复: 11237280 查看本文章

1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。

常见状态码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2).响应头部与请求头部类似,为响应报文添加了一些附加信息常见响应头部如下:
在这里插入图片描述
3).响应数据用于存放需要返回给客户端的数据信息。
下面是一个响应报文的实例:

HTTP/1.1 200 OK  状态行
Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3;path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8  
空行
<html>  响应数据
<head>
<title>HTTP响应示例<title>
</head>
<body>Hello HTTP!
</body>
</html>

在这里插入图片描述
当下的主服务器:

代理服务器: S和C之间的访问实体
缓存服务器: 特殊的代理服务器
网关服务器: 一/个httpFTP网关服务器C—http – 8080 (FTP<–>HTTP )-----S FTP
<源ip地址><源端口号> <目标ip地址><端口>

今天的分享就到这里呀!

猜你喜欢

转载自blog.csdn.net/qq_42707739/article/details/105037723