Maison >interface Web >js tutoriel >Bon sens frontal du protocole HTTP

Bon sens frontal du protocole HTTP

不言
不言original
2018-03-31 09:40:123004parcourir

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 à

http

Bon sens frontal du protocole HTTP.

Introduction : http transfère des données basées sur la communication TCP/IP

Notes

  • 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 ;

  • Structure du message

1.La demande du client http comprend : la ligne de demande, l'en-tête de la demande, la ligne vierge et les données de la demande

Bon sens frontal du protocole HTTP 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

    http1.0 : obtenir, publier et diriger
  • http1.1 ajoute cinq nouvelles méthodes de requête : supprimer, mettre, connecter, tarce et options
Introduction aux significations de commun champs d'en-tête
方法 描述
get 向特定资源发起请求
post 向指定资源提交数据进行数据处理。数据包含在请求体中,post请求可能用于新的资源的创建以及已有资源的修改
head 类似与get请求,只不过没有返回体,用于获取包含在响应消息头中的元信息
put 向指定资源上传最新内容
delete 请求服务器删除指定资源
trace 回显服务器收到的请求,主要用于测试或诊断
connect http1.1中预留给能够将连接改为管道方式的代理服务器
options 返回服务器对特定资源支持的http方法,用来向服务器发送‘*’的请求来测试服务器的功能性

Les en-têtes et les méthodes fonctionnent ensemble pour déterminer ce que le client et le serveur peuvent faire

En-tête commun

En-tête qui peut être utilisé à la fois par le client et le serveur

En-tête de requête

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

Information demandée header

首部 描述
Client-Ip 提供运行客户端机器的IP地址
From 提供客户端用户的E-mail地址
Host 给出接收请求服务器的地址和端口号
Referer 提供包含当前请求URL的文档的URL
UA-color 提供客户端显示器的显示颜色有关的信息
UA-CPU 给出客户端CPU类型和制造商
UA-Disp 提供了客户端显示器能力有关的信息
UA-OS 提供客客户机器上运行的操作系统和版本
UA-Pixels 提供了客户端显示器的像素信息
User-Agent 将发送请求的应用程序名称告知服务器

Accepter l'en-tête

首部 描述
Accept 告诉服务器能够发送哪些媒体类型
Accept-Charset 告诉服务器能够发送哪些字符集
Accept-Encoding 告诉服务器能够发送哪些编码方式
Accept-Language 告诉服务器能够发送哪些语言
TE 告诉服务器可以使用哪些扩展传输编码

En-tête de la demande conditionnelle

首部 描述
Expect 允许客户端列出请求所要求的服务器行为
If-Match 如果实体标记与文档当前的实体标记相匹配,就获取这份文档
If-Modify-Since 除非在某个指定的日期之后资源被修改过,否则就限制这个请求
If-None-Match 如果实体标记与文档当前的实体不相符,就获取文档
If-Range 允许对文档的某个范围就行条件请求
If-Unmodified-Since 除非在某个指定日期之后资源没有被修改过,否则就限制这个请求
Range 如果服务器支持范围请求,就请求资源的指定范围

La demande de sécurité est soumise à l'en-tête

首部 描述
Authorization 包含了客户端提供给服务器,以便对其自身进行数据验证
Cookie 客户端用它想服务端发送一个令牌————它并不是真正的安全首部,确实隐含了安全功能
Cookie2 用来说明请求端支持的Cookie版本

Demande de proxy Partie 1

首部 描述
Max-Forward 在通往服务器的的路径上,将请求转给其他代理或网关的最大次数————与TARCE方法一起使用
Proxy-Authorization 与Authorization首部相同,但这个首部是在与代理进行认证时使用的
Proxy-Connection 与Connection首部相同,但这个首部是在与代理建立连接时使用的

En-têtes de réponse

Le message de réponse a son propre ensemble d'en-têtes pour fournir des informations au client

En-têtes informatifs de la réponse

首部 描述
Age (从最初创建开始)响应持续时间
Publick 服务器为其资源支持的请求方法列表
Retry-After 如果资源不可用的话,在此日期或时间重试
Server 服务器应用程序软件的名称和版本
Title 对于html文档来说,就是HTML文档的源端给出的标题
Wraning 比原因短语中,更详细的警告报文

En-tête de négociation

首部 描述
Accept-Ranges 对此资源来说,服务器可接受的数据类型
Vary 服务器查看其他首部 列表,可能会使响应发生变化;也就是说,这是一个首部列表,服务器会根据这些首部的内容挑选出最合适的资源版本发送给客户端

En-tête de réponse de sécurité

首部 描述
Proxy-Authenticate 来自代理对客户端的质询列表
Set-Cookie 不是真正的安全首部,但隐含安全功能;可以在客户端设置一个安全令牌,以遍服务端对客户端进行标志
Set-Cookie2 与Set-Cookie类似
WWW-Authenticate 来自服务器对客户端的质询列表

En-tête d'entité

En-tête d'entité En-tête utilisé pour la partie du corps de l'entité

En-tête de contenu

首部 描述
Content-Base 解析主体中相对URL时使用的基础URL
Content-Enconding 对主题执行的任意编码方式
Content-Language 理解主体时最适宜使用的自然语言
Content-Length 主体的长度或者尺寸
Content-Location 资源实体所处的位置
Content-MD5 主体的MD5校验和
Content-Range 在整个资源中此实体表示的资源范围
Content-Type 这个主题的对象类型

En-tête de cache d'entité

首部 描述
ETag 与此实体相关的实体标记
Expires 实体不在有效,要从原始的源端再次获取此实体的日期和时间
Last-Modified 这个实体最后一次被修改的日期和时间

Statut

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

tr>Réinitialiser le contenu
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)
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)
205Un 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
状态码 原因短语 含义
200 OK 请求没有问题,实体的主体部分包含请求的资源
201 Created 用于创建服务器的对象请求(比如 PUT),响应的实体部分中应该包含各种引用了以创建的资源的URL,Location首部包含的则是最具体的引用,服务器必须在发送这个状态之前创建好对象
202 Accepted 请求已接受,但服务器还未对其执行任何操作。不能保证服务器会完成这个请求,只是意味着接受请求时,它看起来是有效的。服务器应该在实体的主体部分包含对请求状态的描述,或许还应该对请求完成时间的估计(或者包含一个指针,指向可以获取此信息的位置)
203 Non-Authoritative Information 实体首部包含的信息不是来自于源服务器,而是来自资源的一份副本。如果中间节点上有一份资源副本,但无法或者没有对它所发送的资源有关的元信息(首部)进行验证,就会出现这种情况
204 No Content 响应报文中包含若干首部和一个状态行,但没有实体的主体部分。主要用于浏览器不转为新文档的情况下,对其进行更新(比如刷新一个表达页面)
205 Reset Content 另一个主要用于浏览器的代码。负责告诉浏览器清除当前页面中的所有html标签
206 Partail Content 成功执行一个部分或者Range请求。稍后我们会看到,客户端可以通过一些特殊的首部来获取部分或范围内的文档————这个状态码就说明范围请求成功响应中必须包括Content-Range、Date和ETag或者Content-Location首部



La réponse doit inclure l'en-tête Content-Range, Date et ETag ou Content-Location



  • 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn