HTTP 请求协议详解

这里写图片描述

1.HTTP协议位于 OSI 协议中的 应用层。
2.HTTP 协议是什么:
http(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最广泛的一种网络协议,所有www文件都必须遵守的一个标准,是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。

3. HTTP协议请求
http请求报文是指客户端到服务器端的消息,客户端通过发送http请求向服务器请求对资源的访问。包括三个部分:请求行、请求头部、请求数据。请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。

1.请求行:包含请求方法、uri和协议的版本,用空格分隔,例如:GET/sample.jsp HTTP/1.1

2.请求头部:包含有关客户端环境及请求正文的信息,如请求正文长度、浏览器所用编码格式等,例如;
Accept:image/gif.image/jpeg./

Accept-Language:zh-cn —-语言

Connection:Keep-Alive —-连接状态

Host:localhost —–端口号

User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)

Accept-Encoding:gzip,deflate —-类型
Content-Type: application/x-www-form-urlencoded —报文类型
Content-Length: 35 —请求长度。

HTTP应答报文

http应答报文是指服务器回应http请求,发送给客户端的消息。也包括三个部分:状态行、响应头部、响应数据。

1 状态行:协议版本、状态码、简要描述,例如:HTTP/1.1 200 OK

2 响应头部:必须指明Content-Type,其他可选,例如:Content-Type: text/plain

3 响应数据:即服务器回应客户端的内容。

HTTP请求与响应步骤

    http请求和响应,说白了就是计算机之间的问答对话。http请求是提问者,http响应是回答者。详细步骤如下图所示。



1 建立连接

    先解析DNS,把localhost变成ip(127.0.0.1),然后根据127.0.0.1和端口号8080(没有端口号则使用默认的端口)建立socket。也可以理解为通过“三次握手”建立TCP连接,确定通讯正常。

2 发送请求命令

    socket建立好之后,客户端开始向web服务器发送请求命令(GET/POST等)。

3 发送请求头(和请求正文如果有)

   客户端先发送与自身相关的信息,再发送空行表示请求头发送完毕,如果是post则继续发送请求正文。

4 回传状态行

    应答第一步,发送协议版本和状态码(200、503、404等)

5 回传应答头

    应答第二步,先发送自身相关信息、Content-Type(必须)及被请求的文档,在发送空行宝石应答头发送完毕。

6 回传应答正文

    应答第三步,根据应答头的Content-Type指定的格式发送应答正文。

7 关闭连接

   一次‘会话’完成,如果设置了Connection:keep-alive则TCP连接不关闭,否则关闭连接。

参考连接:https://blog.csdn.net/qq_33616529/article/details/78288883
https://blog.csdn.net/u011774517/article/details/67631439

猜你喜欢

转载自blog.csdn.net/fight_man8866/article/details/81454472
今日推荐