HTTP协议详解

HTTP

1. 介绍
http协议是一种基于TCP/IP通信协议来传输数据的超文本传输协议,通俗点来说就是一种将你需要的信息从万维网传输到本地浏览器的协议,它规定了信息应该怎样传输。
一些常见的web服务有:
Nginx
Apache
lls 等,其中Nginx以自身高并发,轻量级的优势在一些大型互联网企业之中占据较大市场份额,Aphache市场份额在逐年递减,Nginx,Apache的服务与应用会在之后陆续更出。

2. 原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即web服务器发送所有请
求。web服务器根据客户端的请求向客户端响应对应的信息。
3. 特点
* 无连接 ---- 即限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
* 媒体独立----只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
* 无状态----无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果
后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不
需要先前信息时它的应答就较快。
4. 请求消息和回应消息
请求消息----客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
回应消息----HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
5. 请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。
http请求方法
重点方法
GET:单纯获取数据(获取一个index.html页面)
POST:上传/创建文件(会产生新的数据)
PUT:保存数据(覆盖/更新文件、图片等,不会产生新的数据)
DELETE:删除
下面是一些请求信息实例:

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: */* #匹配什么文件类型,“*” 是通用匹配。匹配所有类型

6. 响应头
在这里插入图片描述
下面是服务器响应信息示例:

< HTTP/1.1 200 OK #请求返回的状态码
< Server: nginx/1.16.0 #请求的服务和版本号
< Date: Thu, 04 Jul 2019 08:19:40 GMT
< Content-Type: text/plain #文本类型,有html,plain:普通文本
< Content-Length: 12
< Last-Modified: Thu, 04 Jul 2019 08:13:25 GMT
< Connection: keep-alive #是否支持长连接
< ETag: "5d1db525-c" #标识,每次访问如果与最开始的一样返回304否则校验不一致返回200
< Accept-Ranges: bytes

7. 一些常见的状态码
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
403 - 服务器理解请求客户端的请求,但是拒绝执行此请求
500 - 内部服务器错误

注:收集整理不易,转载请注明出处,谢谢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章