zoukankan      html  css  js  c++  java
  • http协议

    什么是协议

    所谓协议,就是指双方通信过程中必须要遵守的规则

    什么是HTTP协议

    HTTP协议就是互联网通信标准,超文本传输协议

    传输:CSBS

    我们访问网页的时候,事实上就是客户端与服务器端通信。

    ①  http协议相关历史(了解)

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

    1996年的时候,又提出了HTTP1.0

    该版本存在的缺陷:客户端与服务器端建立连接以后,每次只能处理1个请求

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

    最大的改进:客户端可以向服务器发送多个请求了。

    ② http协议的特点

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

    (2) 灵活:HTTP允许传输任意类型的数据,该数据的类型一般由Content-Type加以标记

    (3) 无状态:该协议没有记忆能力

    所谓断开式:就是指通过HTTP协议发送的请求,无论发送多少次,每一次都会被当成全新的请求,服务器并不知道这一次请求和上一次请求有什么关系

    ③ http协议中的消息头和消息体

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

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

     

    现在一般的浏览器在开发者工具里面都可以查看到http请求和http响应

     

    键值对所对应的含义如下:

     

     

    HTTP响应,格式如下图:

     

    具体的响应头信息如下:

     

     

    URL(统一资源定位符)

    互联网上有各种各样的资源,存在于不同的服务器,我们就是靠url来找到这些资源。   一个完整的URL包含4个部分,如下:

    ① Schema架构名

    我们这里就可以简单的理解为协议的名称,例如HTTP

    第一部分之所以填写协议名称,就是为了确定怎样取得资源

     

    协议有很多种,但是我们最常见的就是HTTP协议

     

     

    ② Host主机名

    服务器获取东西,需要你给出详细的主机名,这里的主机名,就相当于现实生活中的地址,你告诉浏览器要去哪一个地方获取资源。

     

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

    IP:网络中对计算机的唯一编号,有一个特殊需要记忆,127.0.0.1本机的IP地址

    域名:相当于是在IP地址的基础上进行了一个的封装,让人更加容易记忆。例如:baidu.com就是域名,更方便我们的记忆。一个特殊的域名:localhost,表示本机。

    ③ 端口号:就是一台服务器上面有很多不同的功能的应用

     

     

    理解为一个服务器中不同应用的入口即可。

    常见的端口号如下图:

     

    注意点:如果使用http协议访问80端口,这个端口号是可以省略的

     

     

    ④ 资源路径:就是在确定端口号以后,资源处于具体的哪一个位置

    如下:

     

    就好比进入相应的办公室以后,需要找到文件具体所在的抽屉。

    举例:

     

    课堂练习:

     

     

    状态码和MIME

    状态码是由一个数字和一个英语单词构成的

     

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

    200 OK 表示的是服务器处理成功,没有任何问题

    状态码的大致分类:

    类别

    描述

    1xx

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

    2xx

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

    3xx

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

    4xx

    客户端的请求有错误

    5xx

    服务器端出现错误

     

    常见状态码如下表:

     

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

    所谓重定向,就是指让客户端重新去请求资源正确的所在地址。

    需要注意的是,使用重定向事实上至少向服务器发送了2次请求,如果有图片或者其他资源的请求,那么请求将大于2

     

     

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

    一般我们就只使用第一个参数即可

     

     

    MIME

    所谓MIME,就是指文件的类型

     

     

    常见的MIME类型,如下图:

    前面代表主类型,后面代表子类型

     

     

    MIME的类型直接影响了浏览器的处理行为

     

     

     

     

     

    GETPOST

     

    ①  区别

     

    首先在请求行的第一个单词就是get或者post,接下来在请求体上面也具有区别:get是没有请求体的,但是post可以具有请求体

     

    虽然理论上是可以无限的往消息体里面写入内容,但是PHP配置文件里面对POST提交的内容是有大小限制的

     

     

    ② 携带数据方式的区别

    两种提交数据的方式,都是以键值对的方式来提交,但是差异就在于在消息中的位置

     

    GET里面的位置:是在地址栏里面

     

     

    POST里面的位置:是放在消息体里面

     

     

     

    获取请求数据

    ① 获取请求头的数据

    PHP里面提供了一个专门的超级变量$_SERVER,专门用来获取请求头的信息,只需要知道对应的键值,就可以得到相应的内容。

     

    $_SERVER里面可以填入的键值就是请求头的各个信息的名称

     

    常用的键如下表:

     

     

    一般在做开发的时候,获取请求头的信息的需求比较少,一般都是获取请求体里面的内容

    PHP里面提供了$_GET[]$_POST[]两个超全局数组来获取请求体里面的信息

    如果不知道是get还是postphp里面还提供了一个$_REQUEST[] 该全局数组也可以获取请求体里面的信息

    一般在明确了使用get或者post的情况下不会使用request,因为效率低

  • 相关阅读:
    反调试:ZwQueryInformationProcess
    反调试:检测类名与标题名
    对某个区间操作(sort,stable_sort,parital_sort,parital_sort_copy,nth_element,is_sorted)
    数值算法(accumluate,inner_product,partial_sum,adjacent_difference,power,itoa)
    随机重拍与抽样(random_shuffle,random_sample,random_sample_n)
    分割(partition,stable_partition)
    子序列匹配(search,search_n,adjcent_find,find,find_if,find_first_of,find_end)
    MySQL管理实务处理
    MySQL触发器
    MySQL使用游标
  • 原文地址:https://www.cnblogs.com/q1345837355/p/7443304.html
Copyright © 2011-2022 走看看