http请求与响应,tcp3次握手&四次挥手

时间:2023-01-25 11:57:57


Python 进阶篇-系列文章全篇

???? ​​Linux操作系统与常用命令​​ ???? Linux系统性能定时监控升级,源码可复制
???? tcp网络程序的实现步骤,看这个就够了
???? http请求与响应,tcp3次握手&四次挥手
???? 模拟浏览器实现,服务端基础框架搭建
???? Python进阶:利用线程实现多任务
???? Python进阶:进程的状态及基本操作
???? Python进阶:一文搞懂迭代器、生成器、协程(附案例)
???? 数据库:了解MySQL数据类型、SQL命令
???? 从零开始学SQL:where条件查询与连接
???? Python网络开发基础,实现udp聊天器小案例
???? 多任务版TCP服务端程序开发案例+源码
???? 【图文教程详解】Ubuntu的两种安装方式
???? Python中的深拷贝与浅拷贝

文章目录

  • ​​Python 进阶篇-系列文章全篇​​
  • ​​1. tcp的3次握手​​
  • ​​2. tcp的4次挥手​​
  • ​​3. IP地址和域名​​
  • ​​4. DNS及浏览器请求服务器的过程​​
  • ​​5. HTTP协议概述​​
  • ​​6. [重点]HTTP协议格式查看​​
  • ​​7. [重点]HTTP请求报文格式​​
  • ​​8. [重点]HTTP响应报文格式​​
  • ​​9. 长连接和短连接​​

1. tcp的3次握手

  • 三次握手是TCP建立连接的时候发送的三个数据包

1、概念

2、简单描述通信过程

3、必须是3次,如果少于3次,会造成系统资源的浪费

2. tcp的4次挥手

  • 四次挥手,指的TCP断开连接的时候发送4个数据包,确保断开连接

1、概念

2、简单描述过程

3、必须是4次 (新连接收到老的数据包)

4、主动发起断开的一方,必须等待2MSL时间

3. IP地址和域名

  • ip地址
  • ip地址网络中计算机的唯一标识,点分10进制构成
  • ipv4和ipv6
  • 域名
  • Doman name
  • 因为网络通信需要使用ip地址,但是ip地址不容易记忆,所以才有了更好记忆的域名
  • 特殊域名:localhost

4. DNS及浏览器请求服务器的过程

  • 浏览器–输入网址–>本地DNS服务器查询ip–>远程DNS服务器–>建立TCP连接
  • 本地DNS服务器是一个文件
  • Windows C:\Windows\System32\drivers\etc\hosts
  • Ubuntu /etc/hosts

5. HTTP协议概述

  • http 协议,超文本传输协议,主要用来发布和传输html页面(网页)
  • http协议2部分构成:
  • 请求协议
  • 响应协议

协议由协议项来构成

协议项:1)协议名 2)协议值

6. [重点]HTTP协议格式查看

  • 谷歌
  • 右键–>检查–>network–>刷新
  • 更多—》开发者工具
  • F12
  • 火狐
  • 右键–> 检查元素–》网络–》刷新

7. [重点]HTTP请求报文格式

  • 请求报文格式
  • 请求行

请求方式 资源路径 协议及版本\r\n

  • 请求头

协议项

协议名: 协议值 \r\n

  • 请求空行

请求空行的作用:分隔请求头和请求的主体

  • 请求主体

浏览器要发送给服务端的内容

get方式没有请求体,post方式才有请求体

8. [重点]HTTP响应报文格式

  • 响应协议
  • 响应行

协议及版本 状态码 状态描述\r\n

常见状态码:

200 一切正常

404 客户端请求的资源不存在

302 重定向

  • 响应头

协议项构成

协议名 : 协议值\r\n

  • 响应空行

分隔响应头和响应 主体

  • 响应主体

服务器响应给客户端的数据

9. 长连接和短连接

  • 长连接

一次连接,多次数据传输,通信结束关闭连接

  • 特点:
    要不连不上,一旦连接上,速度有保证,当瞬间访问压力比较大的时候,服务器不可用
  • 短连接

一次连接,一次传输,就关闭

  • 特点:
    会频繁的建立和断开连接,当瞬间访问压力比较大的时候,服务器响应过慢