美文网首页
网络传输-http

网络传输-http

作者: Gaizka | 来源:发表于2019-05-22 11:20 被阅读0次

1. HTTP简介

HTTP是应用层协议的一种,超文本传输协议。

2. HTTP传输模型

image.png

3. HTTP协议栈中各层数据流

首先我们看看客户端请求的时候,数据在各层协议的数据组织如下图:

image.png

而服务器解析客户机请求就是反向操作的过程,如下图:

image.png

4. HTTP请求报文

image.png

5. HTTP响应

image.png

6. HTTP 的建立连接过程,由于它是基于TCP协议的,只有TCP连接完成,它才可以进行数据传输,TCP的协议就是HTPP 的建立连接过程:

image.png

6.1 为什么要三次握手?

防止客户端是失效的连接请求到达服务器导致网络错乱问题:例如客户端向服务器请求连接,由于网络缓慢问题导致该请求滞留在某个路由节点,这是客户端做了超时处理,但是此时该请求到了服务端,服务端还是认为客户端需要进行连接,那么它会将客户端发送确认连接响应,并且进如SYN_RECEV状态,由于客户端一直没有回复确认连接,服务器会一直处于等待状态,从而导致了资源浪费。

7. HTTP请求报文

image.png

请求报文包括请求头、请求头、请求数据

7.1 请求头

请求方法

HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。
最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。

请求地址

URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。
组成:<协议>://<主机>:<端口>/<路径>
端口和路径有时可以省略(HTTP默认端口号是80)

7.2 请求头

image.png

7.3 请求数据 可选部分,比如GET请求就没有。

8. HTTP响应报文

image.png

响应报文包括: 状态行(状态码 协议版本 状态吗描述信息)、响应头部、响应数据

8.1 状态行

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

8.2 响应头部

image.png

8.3 响应数据 可选部分

9. HTTP 断开

image.png

9.1 为什么TCP不是3次分手

假如client在收到server的FIN请求段后直接close,那么服务器会做超时处理重发FIN数据段,这是client回复的不是ACK=1,ack=seq(server的序列号)+1, 而是给server回复了RST=1数据段,那么server认为是数据错误,从而向上层报错,但是这样的跟TCP是可靠连接的概念是相悖的,所以在收到server端的FIN数据段后自己也要回复ACK确认数据段,并且进入TIME_WAIT状态等待2MSL后如果没有消息就进入close 状态。

相关文章

  • 网络传输-http

    1. HTTP简介 HTTP是应用层协议的一种,超文本传输协议。 2. HTTP传输模型 3. HTTP协议栈中...

  • JavaScript_ cookie及正则

    一、 cookie (一)http与https http,https 都是网络传输协议 是用于网络相关传输,htt...

  • 网络传输 http tcp

    HTTP请求头信息 Connection 请求头信息 Connection Connection 头(header...

  • 阿里软件测试工程师推荐|自动化测试——HTTP网络协议简介

    HTTP网络协议HTTP是超文本传输协议(Hyper Text Transfer Protocol,HTTP)的缩...

  • 浅谈HTTPS加密

    了解web网络基础,什么是http HTTP( HyperText Transfer Protocol,超文本传输...

  • HTTP解读

    1. HTTP是什么 1.1 HTTP定义 http是超文本传输协议,基于TCP/IP网络传输,是一种应用层协议,...

  • 网络请求

    AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...

  • https详解

    概述 网络请求方式通常分为两种,分别是HTTP请求和HTTPS请求,其中HTTP的传输属于明文传输,在传输的过程中...

  • HTTP知识总结

    1.网络模型 应用层、传输层、网络层、数据链路层、物理层 网络层:HTTP协议、FTP协议、DNS 协议 传输层...

  • TCP/IP 网络模型,对应协议举例

    应用层 HTTP,FTP传输层 TCP,UDP网络层 ...

网友评论

      本文标题:网络传输-http

      本文链接:https://www.haomeiwen.com/subject/kryhzqtx.html