Cet article partage avec vous quelques questions de bon sens concernant le front-end du protocole http. Les amis intéressés peuvent jeter un œil à
.
Introduction : http transfère des données basées sur la communication TCP/IP
http est sans connexion : chaque time La connexion ne gère qu'une seule requête. Une fois que le serveur a traité la requête et reçu la réponse du client, il déconnecte la connexion
le média http est indépendant : tant que le client et le serveur sait comment gérer les types de données, toutes les données peuvent être transmises en utilisant http ;
http stateless : sans état signifie que le protocole n'a aucune capacité de mémoire pour le traitement des transactions ;
2.Réponse http : ligne d'état, en-tête du message, ligne vierge, corps de la réponse
Méthode de requête http
方法 | 描述 |
---|---|
get | 向特定资源发起请求 |
post | 向指定资源提交数据进行数据处理。数据包含在请求体中,post请求可能用于新的资源的创建以及已有资源的修改 |
head | 类似与get请求,只不过没有返回体,用于获取包含在响应消息头中的元信息 |
put | 向指定资源上传最新内容 |
delete | 请求服务器删除指定资源 |
trace | 回显服务器收到的请求,主要用于测试或诊断 |
connect | http1.1中预留给能够将连接改为管道方式的代理服务器 |
options | 返回服务器对特定资源支持的http方法,用来向服务器发送‘*’的请求来测试服务器的功能性 |
En-tête commun
En-tête qui peut être utilisé à la fois par le client et le serveur
Spécial au message de requête, fournissant des informations supplémentaires au serveur, telles que le type de données que le client espère recevoir
首部 | 描述 |
---|---|
Client-Ip | 提供运行客户端机器的IP地址 |
From | 提供客户端用户的E-mail地址 |
Host | 给出接收请求服务器的地址和端口号 |
Referer | 提供包含当前请求URL的文档的URL |
UA-color | 提供客户端显示器的显示颜色有关的信息 |
UA-CPU | 给出客户端CPU类型和制造商 |
UA-Disp | 提供了客户端显示器能力有关的信息 |
UA-OS | 提供客客户机器上运行的操作系统和版本 |
UA-Pixels | 提供了客户端显示器的像素信息 |
User-Agent | 将发送请求的应用程序名称告知服务器 |
首部 | 描述 |
---|---|
Accept | 告诉服务器能够发送哪些媒体类型 |
Accept-Charset | 告诉服务器能够发送哪些字符集 |
Accept-Encoding | 告诉服务器能够发送哪些编码方式 |
Accept-Language | 告诉服务器能够发送哪些语言 |
TE | 告诉服务器可以使用哪些扩展传输编码 |
首部 | 描述 |
---|---|
Expect | 允许客户端列出请求所要求的服务器行为 |
If-Match | 如果实体标记与文档当前的实体标记相匹配,就获取这份文档 |
If-Modify-Since | 除非在某个指定的日期之后资源被修改过,否则就限制这个请求 |
If-None-Match | 如果实体标记与文档当前的实体不相符,就获取文档 |
If-Range | 允许对文档的某个范围就行条件请求 |
If-Unmodified-Since | 除非在某个指定日期之后资源没有被修改过,否则就限制这个请求 |
Range | 如果服务器支持范围请求,就请求资源的指定范围 |
首部 | 描述 |
---|---|
Authorization | 包含了客户端提供给服务器,以便对其自身进行数据验证 |
Cookie | 客户端用它想服务端发送一个令牌————它并不是真正的安全首部,确实隐含了安全功能 |
Cookie2 | 用来说明请求端支持的Cookie版本 |
首部 | 描述 |
---|---|
Max-Forward | 在通往服务器的的路径上,将请求转给其他代理或网关的最大次数————与TARCE方法一起使用 |
Proxy-Authorization | 与Authorization首部相同,但这个首部是在与代理进行认证时使用的 |
Proxy-Connection | 与Connection首部相同,但这个首部是在与代理建立连接时使用的 |
Le message de réponse a son propre ensemble d'en-têtes pour fournir des informations au client
首部 | 描述 |
---|---|
Age | (从最初创建开始)响应持续时间 |
Publick | 服务器为其资源支持的请求方法列表 |
Retry-After | 如果资源不可用的话,在此日期或时间重试 |
Server | 服务器应用程序软件的名称和版本 |
Title | 对于html文档来说,就是HTML文档的源端给出的标题 |
Wraning | 比原因短语中,更详细的警告报文 |
首部 | 描述 |
---|---|
Accept-Ranges | 对此资源来说,服务器可接受的数据类型 |
Vary | 服务器查看其他首部 列表,可能会使响应发生变化;也就是说,这是一个首部列表,服务器会根据这些首部的内容挑选出最合适的资源版本发送给客户端 |
首部 | 描述 |
---|---|
Proxy-Authenticate | 来自代理对客户端的质询列表 |
Set-Cookie | 不是真正的安全首部,但隐含安全功能;可以在客户端设置一个安全令牌,以遍服务端对客户端进行标志 |
Set-Cookie2 | 与Set-Cookie类似 |
WWW-Authenticate | 来自服务器对客户端的质询列表 |
En-tête d'entité En-tête utilisé pour la partie du corps de l'entité
首部 | 描述 |
---|---|
Content-Base | 解析主体中相对URL时使用的基础URL |
Content-Enconding | 对主题执行的任意编码方式 |
Content-Language | 理解主体时最适宜使用的自然语言 |
Content-Length | 主体的长度或者尺寸 |
Content-Location | 资源实体所处的位置 |
Content-MD5 | 主体的MD5校验和 |
Content-Range | 在整个资源中此实体表示的资源范围 |
Content-Type | 这个主题的对象类型 |
首部 | 描述 |
---|---|
ETag | 与此实体相关的实体标记 |
Expires | 实体不在有效,要从原始的源端再次获取此实体的日期和时间 |
Last-Modified | 这个实体最后一次被修改的日期和时间 |
Le code d'état permet au client de comprendre le traitement des transactions. Raccourcis pour les résultats
100-199
: Codes d'état informatifs
状态码 | 原因短语 | 含义 |
---|---|---|
100 | Continue | 说明收到了客户端的请求初始部分,请客户端继续。发送这个状态码后,服务端在收到请求后必须进行响应 |
101 | Switching Protocols | 说明服务器端正在根据客户端的指定,将协议切换为Update首部所列的协议 |
200-299
: Code d'état de réussite
Lorsque le client envoie des demandes, ces demandes réussissent généralement
Code d'état | Phrase de raison | Signification | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
200 | OK | Il n'y a aucun problème avec la requête, la partie corps de l'entité contient la ressource demandée | |||||||||||||||||||||||||||
201 | Created td> | est utilisé pour créer une demande d'objet pour le serveur (telle que PUT). La partie entité de la réponse doit contenir diverses URL faisant référence aux ressources créées. la référence la plus spécifique , le serveur doit créer l'objet avant d'envoyer ce statut | |||||||||||||||||||||||||||
202 | Accepté<.> | La requête a été acceptée, mais le serveur n'a encore effectué aucune opération dessus. Il n'y a aucune garantie que le serveur terminera la demande, cela signifie simplement que lorsque la demande est acceptée, elle semble valide. Le serveur DEVRAIT inclure une description de l'état de la demande dans le corps de l'entité, et peut-être une estimation du moment où la demande sera terminée (ou inclure un pointeur vers un emplacement où ces informations peuvent être obtenues) | tr>|||||||||||||||||||||||||||
203 | Informations non faisant autorité | Les informations contenues dans l'en-tête de l'entité ne font pas autorité. ne provient pas du serveur source, mais de la ressource dont une copie. Cette situation se produit si le nœud intermédiaire possède une copie de la ressource, mais ne peut pas ou ne vérifie pas les métainformations (en-tête) liées à la ressource qu'il envoie | |||||||||||||||||||||||||||
204 | Aucun contenu | Le message de réponse contient plusieurs en-têtes et une ligne d'état, mais aucun corps d'entité. Principalement utilisé pour mettre à jour le navigateur sans passer à un nouveau document (comme rafraîchir une page d'expression) | |||||||||||||||||||||||||||
205 | Réinitialiser le contenuUn autre code principalement pour les navigateurs. Responsable de demander au navigateur d'effacer toutes les balises HTML de la page actuelle | ||||||||||||||||||||||||||||
206 | Contenu Partail td> | Exécute avec succès une requête partielle ou de plage. Nous verrons plus tard que le client peut obtenir une partie ou une plage de documents via certains en-têtes spéciaux - ce code d'état indique que la demande de plage est réussie
|
|||||||||||||||||||||||||||
300-399
: Code d'état de redirection
Le code d'état de redirection indique au client d'utiliser un autre emplacement pour accéder à la ressource qui l'intéresse dans , ou fournissez une réponse alternative au contenu de la ressource. Si la ressource a été déplacée, un code d'état de redirection et un en-tête Location facultatif peuvent être envoyés pour informer le client que la ressource a été déplacée et où elle peut être trouvée maintenant
状态码 | 原因短语 | 含义 |
---|---|---|
300 | Multiple Choices | 客户端请求实际是一个指向多个资源的URL时会返回这个状态码,比如服务器上某个HTML文档有中文和英文版。返回这个代码时会有一个选项列;这样用户就可以选择他希望使用的一项 |
301 | Moved Permanently | 在请求URL已被移出时。响应的Loaction首部中包含资源所处在的URL |
302 | Found | 与301类似;但是客户端应该使用Location首部给出的URL获取临时定位资源。将来的请求任使用老资源 |
303 | Set Ohter | 告诉客户端应该使用另外一个URL来获取资源。新的URL资源位于响应报文Location首部。其主要目的是允许POST请求的响应将客户端定向到某个资源上去 |
304 | Not Modify | 客户端可以通过所包含的请求首部,使其请求变成有条件的。如果客户端发送一个GET请求,而最近资源未改变的话,就可以用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含实体部分 |
305 | Use Proxy | 用来说明必须通过一个代理来访问资源。代理的位置由Location来给出。很重要的一点,客户端是相对某个特定资源来解析这条响应的,不能假定所有请求,甚至所有对持有所请求的服务器请求都通过这个代理进行。如果客户端错误的让代理介入某个请求,可能引发破坏性的行为,照成安全漏铜问题 |
306 | 未使用 | 未使用 |
307 | Temporary Redirect | 与301状态码类似;但客户端应该使用Location首部给出的URL来临时定位资源。将来的资源应该用老的URL |
400-499
: Code d'état d'erreur du client
Parfois, le client enverra quelque chose que le serveur ne peut pas gérer, comme quelque chose qui ne va pas format Message de demande, ou le plus souvent une URL inexistante
状态码 | 原因短语 | 含义 |
---|---|---|
400 | Bad Request | 用于告诉客户端发送了一个错误的请求 |
401 | Unauthorized | 与适当的首部一起返回,在这个首部中请求客户端在获取资源的访问权之前,对自己进行认证 |
402 | Payment Required | 状态码未使用 |
403 | Forbidden | 用于说明请求被服务器拒绝。如果服务器说明为什么拒绝请求,可以包含实体的主体部分进行描述。但这个状态码通常是服务器不想说明原因的时候使用 |
404 | Not Found | 用于说明服务器说明无法找到请求的URL。通常会包含一个实体,以便于客户端应用程序给用户看 |
405 | Method Not Allowed | 发送的请求中带有所请求的URL不支持的方法时,会使用此状态码。因该在响应中包含Allow首部,以告诉客户端对所请求的资源可以使用哪些方法 |
406 | Not Acceptable | 客户端可以指定参数来说明它愿意接受什么类型的实体。服务器没有与客户端接受的URL相匹配的资源的时,使用此代码。通常服务器会包含一些首部,以便客户端弄清除为什么请求无法满足 |
407 | Proxy Authentication Required | 与401相似,但用于要求对资源进行认证的代理服务器 |
408 | Request Timeout | 如果客户端请求的时间太长,服务器可以返回此状态码,并关闭连接。超时时常随服务器不同而不同,但通常对所有合法服务器来说,都是够长的 |
409 | Conflict | 用于说明请求可能在资源上引发了一些冲突。服务器担心会引发冲突,可以发送此状态码。响应中应该包含描述冲突的主体 |
410 | Gone | 与404类似,只是服务器曾经拥有过此资源。主要用于Web站点的维护,这样服务器管理者就可以在资源被移除的情况下通知客户端 |
411 | Length Required | 服务器要求请求报文中包含Content-length时使用 |
412 | Precondition Falied | 客户端发送请求条件,且其中一个条件失败的时候使用。客户端包含了Expect首部时发送的就是条件请求 |
413 | Request Entiny Too large | 客户端发送的实体主体部分比服务器能够或者希望处理的要大时,使用此状态码 |
414 | Request Url Too Long | 客户端发送的请求中的请求URL比服务器能够或者希望处理的要长时,使用此状态码 |
415 | Unsupported Media Type | 服务端无法理解或支持客户端发送实体的内容类型时,使用此状态码 |
416 | Request Range Not Satisfiable | 请求报文是请求资源的某个范围,而此范围无效或无法满足时,使用此状态码 |
417 | Expection Failed | 请求的Expect请求包含了一个期望,但服务器无法满足此期望时,使用此状态码。如果代理或其他中间程序有确切证据说明源服务区器端会为请求产生一个失败期望,就可以发送这个状态码 |
500-599
: Code d'état d'erreur du serveur
Parfois, le client envoie une requête et le serveur lui-même échoue
状态码 | 原因短语 | 含义 |
---|---|---|
500 | Internal Server Error | 服务器遇到一个妨碍它为请求提供服务的错误时,使用此状态码 |
501 | Not Inplemented | 客户端发送请求时超出服务器的能力范围,使用此状态码 |
502 | Bad Gateway | 作为代理或网关使用服务器从响应链的下一条链路上收到一条伪响应时,使用此状态码 |
503 | Service Unavailable | 用来说明服务器现在无法为请求提供服务,但将来可以。如果服务器知道资源什么时候可用,可以在响应中包含一个Retry-after首部 |
504 | Gateway Timeout | 与状态码408类似,只是这里的响应来自一个网关或代理,他们在等待另一服务器对其请求进行响应时超时了 |
505 | HTTP Version Not Supported | 服务器收到的请求使用了它无法或不愿支持的协议版本,使用此状态码。有些服务器应用程序选择不支持协议的早早期版本 |
Modifier cette page sur github
Blog personnel du blogueur
Référence : protocole http
[ guide faisant autorité http]
Recommandations associées :
Processus d'utilisation du protocole http
Qu'est-ce que le protocole HTTP
Quelle est la différence entre le protocole Http et le protocole TCP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!