查看原文
其他

超文本传输协议 HTTP 详解

PHP开发者 2022-09-08

(给PHP开发者加星标,提升PHP技能

转自:https://www.tomorrow.wiki/archives/1848

HTTP 英文原文为:HyperText Transfer Protocol,中文全称叫超文本传输协议。


它是基于 TCP/IP 通信协议来传输数据的,是互联网上应用非常广泛的一种网络传输协议,所有的万维网文件都必须遵守该协议。


下面将详细阐述 HTTP 协议的工作原理,消息结构,请求方法,响应头,状态码等相关内容。

  HTTP 工作原理

浏览器作为 HTTP 客户端,通过 URL 向 Web 服务器(也即 HTTP 服务器)发送请求。Web 服务器接收到浏览器的 HTTP 请求后,做出相应的响应。


Web 服务器的默认监听端口为 80 。

  消息结构

HTTP 客户端发送的请求消息包含以下四部分:

  • 请求行

  • 请求头部

  • 空行

  • 请求体

其具体格式如下:

服务器响应的消息也包含以下四部分:

  • 状态行

  • 消息报头

  • 空行

  • 响应正文

客户端请求实例:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

服务器响应实例:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

客户端输出的结果:

Hello World! My payload includes a trailing CRLF.

 

  HTTP 请求方法

HTTP 的 8 种请求方法如下所示:

常用的请求方法只有 get、post 和 head 三种。

 

  HTTP 响应头

  HTTP 状态码说明

当用户访问一个网页时,浏览器向服务器发出请求。在浏览器接收并显示网页之前,服务器会返回一个包含HTTP 状态码的信息头(server header),用以响应浏览器的请求。


HTTP 状态码的英文为 HTTP Status Code。

下面是常见的HTTP 状态码:

  • 200 – 请求成功

  • 301 – 资源(网页等)被永久转移到其它 URL

  • 404 – 请求的资源(网页等)不存在

  • 500 – 内部服务器错误


- EOF -

推荐阅读  点击标题可跳转

1、也许这样理解 HTTPS 更容易

2、通过信鸽来解释 HTTPS

3、PHP局部变量、静态变量、全局变量和超全局变量的使用和区别


看完本文有收获?请分享给更多人

关注「PHP开发者」加星标,提升PHP技能


点赞和在看就是最大的支持❤️

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存