0
点赞
收藏
分享

微信扫一扫

Linux(1)-- HTTP

霍华德 2022-03-12 阅读 75

HTTP(Hyper Text Transform Protocol,超文本传输协议),是一个简单的请求-响应协议,运行在TCP之上,工作在应用层,服务端默认端口号为80https端口号为443

1. 浏览器和服务器通信过程:

http是基于B/S模式的,建立通信过程如下:
1️⃣ TCP连接
浏览器与服务器三次握手,建立 TCP 连接
2️⃣ 客户端请求
建立 TCP 连接后,客户端就会向服务器发送一个 HTTP 请求信息(比如请求 HTML 资源)
3️⃣ 服务器响应
服务器接收到请求后进行处理并发回一个 HTTP 响应信息
4️⃣ 关闭连接

2. HTTP的请求方式

  1. HTTP 请求方式一共有 9 种:
    POST 、GET 、HEAD、PUT
    PATCH 、 OPTIONS 、DELETE 、CONNECT 、 TRACE 。
    其中前三种 POST 、GET 、HEAD 是 HTTP 1.0 定义的,后六种 PUT 、PATCH 、 OPTIONS 、DELETE 、CONNECT 、 TRACE 是 HTTP 1.1 定义的。
序号 方法 描述
1 GET 请求指定的页面信息,并返回实体主体。
2 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
3 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
6 OPTIONS 允许客户端查看服务器的性能。
7 DELETE 请求服务器删除指定页面。
8 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
9 TRACE 回显服务器收到的请求,主要用于测试或诊断。
  1. GET和POST请求方式的区别
    (1)get 请求提交路径上存在参数信息,不安全
    ​ post请求提交时路径上没有参数信息,相对安全
    ​ (2)get 请求提交的数据URL有限制(限制于特定浏览器和服务器),而post请求提交的数据URL没有限制
    (3)浏览器后退,post刷新会重新请求,get不会
    (4)post对数据类型没有限制,get只允许ASCII字符。

3.http1.x和http2.0的区别

(1)二进制分帧:HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
(2)多路复用:一次TCP握手,多个同域并行请求,请求和响应同时发送接受,然后再拼装组合,不阻塞;一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面
(3)header压缩:HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小;
(4)服务器推送:根据客户端需求,服务端主动推送资源,减少请求耗时。

4.状态代码

状态代码由单位数字组成,第一位数字定义了响应的级别,且有5种可能取值。

代码 描述
1xx 指示信息 – 表示请求已接收,继续处理
2xx 成功 – 表示请求已被成功接收、理解、接受
3xx 重定向 – 要完成请求必须更进一步的操作
4xx 客户端错误 – 请求有语法错误或请求无法实现
5xx 服务器端错误 – 服务器未能实现合法的请求

常见状态代码、状态描述:

代码 描述
200 OK:客户端请求成功
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden:服务器收到请求,但是拒绝提供服务
404 Not Found:请求资源不存在
500 Internal Server Error:服务器发生不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

5.http报文格式

http报文分为两种:请求报文和响应报文。
(1)http请求报文
http请求报文由请求行请求头部空行请求报文主体组成
http响应报文由起始行响应头部空行响应报文主体组成

请添加图片描述

http协议请求的工作流程:

(1)终端客户在web浏览器地址栏输入访问地址http://www.ceshi.com:80/index.html
(2)web浏览器请求DNS服务器进行域名解析,得到web服务器的IP地址
(3)web浏览器将端口号从url中解析出来
(4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接
(5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文
(6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文
(7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。

举报

相关推荐

0 条评论