其他
超文本传输协议 HTTP 详解
(给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 -
看完本文有收获?请分享给更多人
关注「PHP开发者」加星标,提升PHP技能
点赞和在看就是最大的支持❤️