HTTP协议

来源:互联网 发布:局域网电话软件 编辑:程序博客网 时间:2024/06/06 18:33


什么是协议

所谓协议,就是指通信双方需要遵守了一系列标准,例如信件协议,如下:

 

 

什么是HTTP协议

① 什么是HTTP

通俗来讲,就是互联网通信标准。

当我们访问网页的时候,其实就是客户端和服务器端在进行通信。

 

②  HTTP协议的历史(了解)

最早的HTTP协议的版本为0.9版本,是在1990年的时候提出来。

 

1996年的时候,HTTP版本更新到了1.0,但是1.0有一个缺陷:客户端与服务器端建立好连接以后,每次只能处理1个请求,如果1个请求处理完,连接就会断开。

 

1997年的时候,又提出HTTP1.1

最大的改进在于:建立连接以后,客户端可以向服务端 多次请求

 

 

③ HTTP协议的特点

(1) 支持客户端和服务器端模式

(2) 灵活:Content-Type 该属性可以修改文件的数据类型

(3) 无状态(重要)

 

所谓断开式,就是指HTTP协议发送请求的时候,无论发送多少次,每一次都会被当做全新的请求,服务器并不知道这一次请求和上一次请求之间有什么关系(ATM案例)

 

 

(4) HTTP协议的内容格式

HTTP请求:请求行,请求头,空行  →消息头  消息体

HTTP响应:响应行,响应头,空行  →消息头  消息体

 

HTTP请求

请求行里面:包含 请求的方式,请求目录,协议和版本

 

下面是一些键值对,具体的信息如下表:

 

 

HTTP响应:

服务器就处理了HTTP请求以后,会将处理结果封装到响应的消息体里面,并且响应头也有额外的信息,如下:

 

常见的响应头信息如下:

 

 

在实际开发中怎样查看HTTP请求和响应(重要)

在一般的浏览器里面,都内置了开发者工具,可以按F12打开

请求头

 

响应头

 

 

URL

URL:翻译成中文为 统一资源定位符

互联网上有各种各样的资源,这些资源是存在于不同的服务器,我们要找到这些资源,就需要通过URL

 

 

URL一共分为4个部分:schema(架构名),host(主机名),port(端口号),path(资源路径)

 

 

①  Schema:架构名

 

除了HTTP协议以外,还有其他的协议

 

 

② 主机名

主机名就是网络里面的地址,和现实生活中的地址是一样的,只有输入正确的地址,才能找到你想要的资源。

 

主机名有两种形式:IP地址和域名

IP:网络中对计算机的唯一编号。就相当于现实生活中的地址。但是有一个IP需要大家记忆:127.0.0.1表示本机的IP

 

域名:就是相当于对IP的一个封装,便于更加容易记忆。例如baidu.com就是一个域名。这里需要记住一个特殊的域名:localhost表示本机

 

DNS:域名解析器,顾名思义,就是用来解析域名的。当我们通过域名来访问服务器地址的时候,最终还是会被DNS解析为IP地址。

 

③ 端口号

所谓端口号,就是指一台服务器有多个应用,每个应用对应了不同的端口,当我们要访问不同的应用的时候,只需要进入相应的端口即可

 

常见的端口号:

0-1023   默认是系统自定义的

0--65535 能用的端口号‘范围’

可在控制台输入:netstat -an   即可查看所有‘可听’端口号

 

补充:11211memcache的端口

如果是用http协议访问80端口,那么端口号可以省略

 

④ 资源路径

找到对应的端口号以后,就相当于进入了办公室,办公室里面有很多抽屉,我们需要的文件就在某一个抽屉里面

 

例如:

 

 

状态码和MIME

状态码存在于响应头的第一行,由一个数字和一个单词组成

 

 

状态码作用:表示服务器端响应的状态

例如这里的200 OK就代表服务器处理成功,没有任何问题,返回响应

 

状态码的分类:

类别

描述

1xx

成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

2xx

成功接收请求,并且已经完成了整个请求的处理

3xx

为了完成请求,客户端需要进一步的细化请求

4xx

客户端的请求有错误

5xx

服务器端出现错误

 

常见状态码如下表:

 

 

301302都是重定向的意思。这两个基本上可以理解为是一样的,但是还是有一些细微差别,301是永久重定向,302是临时重定向。

所谓重定向:就是让客户端重新去请求资源正确的所在位置

需要注意的是,使用重定向,客户端至少需要发送2次请求,如果请求的资源里面含有图片或者其他资源,那么请求数会大于2

 

 

Header()函数:该函数是用来修改响应头文件的。

可以接受3个参数 1. 字符串:要修改的响应头内容  2. 布尔值(可选):是否覆盖之前的内容  3.int(可选):更改后的状态码

 

 

MIME:就是指文件的类型

 

常见的MIME类型如下图:

 

 

MIME:直接影响了浏览器的处理行为。

 

 

 

 

GETPOST

① 区别

首先是请求行的第一个单词不同,接下来在请求体方面也有不同:get是没有请求体的,但是post有请求体

 

理论上post里面的请求体可以无限的写入数据,但是PHP配置文件里面还是对POST提交的内容有大小的限制

 

 

② 携带数据的方式

 

GET:如果是采用GET的方式向服务器传递数据,那么数据会被附加在地址栏(重要)

 

 

POST:如果是采用POST的方式向服务器传递数据,那么数据的位置位于HTTP请求的请求体里面(重要)

 

 

总结如下:

 

 

服务器端获取客户端传递过来的数据

PHP里面有两个超全局数组:$_GET[ ]  $_POST[ ]

$_GET[ ]:当向服务器传递数据是使用的get方式的时候,就可以使用$_GET来获取数据

$_ POST [ ]:当向服务器传递数据是使用的post方式的时候,就可以使用$_post来获取数据

如果不知道是get还是postPHP里面还提供了一个超全局数组$_REQUEST[ ],无论提交的方式是get还是post,都可以获取到数据。但是一般在实际开发的时候用的很少,因为效率低。

 

$_SERVER[]:获取请求头的相关信息。该数组里面的键值就是请求头里面的键

常见的$_SERVER[]下面的键值

总结:

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怕怀孕月经不来怎么办 宫颈环扎后宫缩怎么办 来例假刺激外阴高潮了怎么办 客人消费完说没钱怎么办? 孕13周血糖偏高怎么办 餐后血糖高14点怎么办 餐后血糖20多怎么办 空腹血糖6.6饭后9.2怎么办 键盘shift键失效了怎么办 灵异附身夫妻不合怎么办 鞋子买大了半码怎么办 鞋子买小了半码怎么办 黑布鞋鞋面白了怎么办 黑布鞋不黑了怎么办 黑布鞋退白了怎么办 老北京布鞋款式太少怎么办 老人输液抽搐后昏迷怎么办 头七家里有狗怎么办 股票退市股民的钱怎么办 美国股票退市股民怎么办 百度云字幕和视频不同步怎么办 百度云加载字幕有延迟怎么办 很难适应新环境怎么办 蜘蛛丝碰到嘴唇上起包有毒怎么办? 电瓶车在路上爆胎了怎么办 嘴被虫子咬肿了怎么办 高铁管家购票失败怎么办 高铁车厢空调冷怎么办 高铁票过了时间怎么办 网购火车票丢了怎么办 改签没有票了怎么办 火车票取了没赶上车怎么办 上车后车票丢了怎么办 晒了吗任务过期怎么办 坐火车买了站票怎么办 坐火车忘记带票怎么办 距离二本线差几分怎么办 行李包落火车候车厅怎么办 高铁票买错地点怎么办 高铁票买错日期怎么办 票买错时间了怎么办