HTTP 介绍

**简介:**HTTP 协议是超文本传输协议(Hyper Text Transfer Protocol)的缩写,是从万维网 (WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

一、HTTP 工作原理

HTTP协议工作架构:客户端-服务端架构。

客户端:浏览器作为HTTP客户端,通过URL向HTTP服务端即WEB服务器发送所有请求。

服务端:Web服务器根据接收到的请求后,向客户端发送响应信息。

Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。

HTTP默认端口号为80,但是你也可以改为其他端口。

1.1HTTP三点注意事项

  • HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以 通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

  • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则它必须重传。

以下图表展示了HTTP协议通信流程:

图片

CGI :通用网关接口(Common Gateway Interface/CGI)

描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI 独立于任何语言 的,CGI 程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。

1.2HTTP 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务 器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

1.3客户端请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)

请求头部 (header)

空行

请求数据

一共四个部分组成,下图给出了请求报文的一般格式。

图片

1.4服务器响应消息

HTTP响应也由四个部分组成,分别是:

状态行

消息报头

空行

响应正文

图示**:**

图片

1.5示例

下面实例是一个典型的使用GET来传递数据的实例。

客户端请求:

# curl -v http://www.testpm.cn 
Connected to www.testpm.cn (47.244.247.240) port 80 (#0) 
> GET /hello.txt HTTP/1.1 # 请求方式与版本协议。 
> User-Agent: curl/7.29.0 #用什么客户端访问 
> Host: www.testpm.cn #主机名,域名。主机和端口号, 
> Accept: */* #匹配什么文件类型,“*” 是通用匹配。匹配所有类型

服务端响应:

< HTTP/1.1 200 OK #请求返回的状态码 
< Server: nginx/1.16.0 #请求的服务和版本号 
< Date: Thu, 04 Jul 2019 08:19:40 GMT #当前时间,北京时间为GMT+8小时 
< Content-Type: text/plain #mime类型,test/plain:普通文本,比如image/png...、 video 
< Content-Length: 12 #内容的长度 
< Last-Modified: Thu, 04 Jul 2019 08:13:25 GMT #最后修改时间 
< Connection: keep-alive #是否支持长连接 
< ETag: "5d1db525-c" #标识,每次访问如果与最开始的值一样返回304否则校验不一致返回200 
< Accept-Ranges: bytes #接受的范围单位

1.6 HTTP 请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

图片

1.7HTTP 响应头信息

HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。

图片

1.8HTTP 状态码

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

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

下面是常见的HTTP状态码:

200 - 请求成功

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

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

500 - 内部服务器错误

403

302

304

HTTP状态码分类

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类 的作用。HTTP状态码共分为5种类型:

图片

HTTP状态码列表**:**

图片

图片

图片
本文出自网络教程。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值