HTTP协议

一,什么是HTTP(超文本传输协议)
HTTP:HyperText Transfer Protocol的简称,超文本传输协议
是什么:W3C组织推出的浏览器与Web服务器之间数据交互需遵循的一种规范
怎么用:专门用于定义浏览器与Web服务器之间数据交换的格式
二,HTTP之所以在Web开发中占据重要的位置
1,支持主流软件架构:支持B/S、C/S软件架构。
2,简单快速:客户端向服务器请求服务时,只需传送请求方式和路径即可。常用的请求方式有GET、POST等,每种方式规定了客户端与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,通信速度快。
3,灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标记。
三,查看HTTP消息
1,HTTP请求消息的概念:当用户在浏览器中访问某个URL地址、单击某个超链接或者提交表单时,浏览器都会向服务器发送请求数据,即HTTP请求消息。
2,HTTP响应消息的概念:服务器接收到请求数据后,将处理后的数据回送给客户端,这就是HTTP响应消息。
3,HTTP消息的概念:HTTP请求消息和HTTP响应消息统称为HTTP消息。
4,在HTTP消息中,除服务器的响应实体内容(如HTML网页、图片等)以外,其他信息对用户都是不可见的,要想观察这些“隐藏”的信息,需要借助一些工具。
5,按F12键,打开Chrome浏览器的开发者工具,切换到【Network】页面,刷新网页,就可以看到当前网页从第1个请求开始,依次发送的所有请求。
如图:
在这里插入图片描述
四,PHP处理过程
在浏览器与服务器的交互过程中,Web服务器通过HTTP协议与浏览器进行交互,PHP只用于处理动态请求。
在这里插入图片描述
1,当浏览器向Web服务器发送一个请求时,Web服务器会对请求做出处理,并返回处理结果。
2,在这个交互过程中,浏览器是通过URL地址来访问服务器的,并且数据在传输过程中需要遵循HTTP。
3,当数据传输到Web服务器时,Web服务器中的PHP程序会对数据进行处理,然后将处理好的数据返回给浏览器。
HTTP请求
当在客户端浏览器输入URL地址后,就会向指定服务器发起HTTP请求。在请求的同时,会附带请求消息头、请求消息体等相关信息。
Web服务端处理
1,当请求到达服务器后,Apache就会判断客户端请求的是静态资源还是PHP文件。
2,如果请求的是静态资源如HTML、CSS、JavaScript和图片等文件,Apache就直接在服务器目录下获取这些文件。
3,如果请求的是PHP文件,Apache则会将其交给PHP模块来处理,PHP模块将处理得到的结果返回给Apache。
返回HTTP响应数据
Apache将获取到的资源(包括直接获取的静态资源和PHP处理的结果)通过HTTP响应发送到客户端浏览器。
浏览器显示
浏览器将服务器返回的资源,包括HTML、CSS、JavaScript和图片下载到本地,进行解析并显示。
五,HTTP请求消息
每个请求头都是由头字段名称和对应的值构成,中间用冒号“:”和空格分隔。这些头字段大部分是HTTP规定的,每个都有特定的用途,一些应用程序也可以添加自定义的字段。
HTTP请求消息——请求行
请求行位于请求消息的第一行,如下所示:
在这里插入图片描述
1,请求行共分为3个部分,分别是请求方式(GET)、请求资源路径(/index.php)和HTTP协议版本(HTTP/1.1)
2,请求方式有许多种,GET是浏览器打开网页默认使用的方式
3,请求资源路径,是指当访问“http://域名/index.php”地址时,域名右边包括参数的部分
HTTP请求消息——请求行
在这里插入图片描述
请求头位于请求行之后,主要用于向服务器传递附加消息。
例如,浏览器可以接受的数据类型、压缩方法、语言以及系统环境。
HTTP请求消息——请求头
在这里插入图片描述
HTTP请求消息——实体内容
通过POST方式提交表单时,浏览器会将用户填写的数据放在实体内容中发送。
在这里插入图片描述
提交表单后,发送的HTTP请求消息如下。
在这里插入图片描述
使用POST方式提交表单
1,Content-Type消息头字段会自动设置为“application/x-www-form-urlencoded”,表示以URL编码的表单
2,Content-Length消息头会自动设置为实体内容的长度(25字节)
六,HTTP响应消息
在这里插入图片描述
HTTP响应消息——响应状态行
在HTTP响应消息中,位于第一行的是状态行,用于告知客户端本次响应的状态
在这里插入图片描述
响应状态码:表示服务器对客户端请求的各种不同的处理结果和状态
组成:响应状态码由一个三位十进制数表示
分类:响应状态码共分为5个类别,通过最高位的1~5来分类
1xx:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
2xx:成功接收请求并已完成整个处理过程
3xx:为完成请求,客户端需进一步细化请求
4xx:客户端的请求有错误
5xx:服务器端出现错误
在这里插入图片描述
在这里插入图片描述
HTTP响应消息——响应头
响应头位于响应状态行的后面,用于告知浏览器本次响应的一个基本信息,包括服务程序名、内容的编码格式、缓存控制等。
在这里插入图片描述
在这里插入图片描述
1,HTTP的请求头和响应头是浏览器与服务器之间交互的重要信息,由浏览器和Web服务器自动处理,通常不需要人为干预。
2,但有时开发者会需要手动更改一些响应消息,以实现网站项目的某些功能需求,或者进行浏览器缓存方面的优化。
在PHP中,通过header()函数可以自定义响应消息头
在这里插入图片描述
服务器响应的实体内容有多种编码格式
1,当用户请求的是一个网页时,实体内容的格式就是HTML
2,如果请求的是图片,则响应图片的数据内容
服务器为了告知浏览器内容类型,会通过响应消息头中的Content-Type来标识
例如,网页的类型通常是“text/html; charset=UTF-8”,表示内容的类型为HTML,字符集是UTF-8,其中“text/html”是一种MIME类型表示方式
在这里插入图片描述

希望对有需要的朋友有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值