当前位置: 首页 > news >正文

http(下)

http的工作流程:

客户端---服务端通信过程

请求----响应的模型

建立连接:tcp/ip协议与服务器建立连接(三次握手),客户端向服务器的80端口发送连接请求

发送请求:一旦连接建立之后,客户端就像服务端发送http请求。http请求:由一个请求行和多个头部字段组成

请求方式:get post

服务端处理请求:根据请求的方式和内容进行处理。服务端会读取请求头的字段,解析参数,处理数据等等

服务端返回响应:形成一个http响应,响应由一个响应行,包含多个字段。响应内容包含重要的内容状态码,用于表示服务端对于请求的处理结果

面试题:

http的状态码

1xx:信息提示100-101 无实际作用

2xx:成功,表示请求处理结果成功 200

3xx:重定向,304表示请求的是缓存

4xx:客户端错误,403 404,请求的页面不存在或者没有权限访问

403:请求的页面禁止访问

404:服务器无法请求的页面

5xx:服务器错误

  1. 内部服务器错误

500:检查防火墙,检查进程也就是服务状态,检查端口,检查配置文件,端口号被占用

502:无效网关

503:请求的服务器不可用,可能下线了

504:网关请求超时

生产中常见的状态码:

200 ok:请求成功

301:永久重定向

302:临时重定向

304:访问的是本地缓存

403:Forbidden,禁止客户访问该页面

404:NOT FOUND,服务器无法找到被请求的页面

500:inetnal server error,内部服务器错误

502:BAD geteway,网关失效(服务端的网关失效)

503:server Unavailable,服务器不可用(网站维护)

504:GATEWAY timeout,网关请求超时(服务端处于维护或者路由器故障)

传输数据:一旦服务器生成了http响应,会通过之前建立的连接将响应返回给客户端

响应当中包含了请求的资源(网页内容)以及其他的需要传输的数据(一般是自定义)

关闭连接:响应发送完成,服务端就会进入连接关闭,http1.1 time_wait。双方还在建立连接,只是双方之间不在有数据传输。一旦有新的请求,连接可以继续使用。160秒 会话保持或者长连接

http1.1会一次性获取页面的全部资源,然后发起四次挥手。只是不再传输数据,连接并没有断开

客户端解析和现实响应:

客户端收到http响应之后,解析响应内容,包括页面解析,显示图片,播放视频

主要靠的是浏览器

客户端也可以继续发送请求,或者打开新的连接,请求其他资源

http的请求方式:

get的方式:

get向服务器放送请求的数据,依照http协议来进行get就是请求

请求行:

请求体:

Accept:客户端可以接受的数据类型

Accept-Encoding:客户端可以接受的编码格式,以及数据是否需要压缩

Accept-Language:客户端可以接受的语言类型

Cache-Control:数据再本地缓存的时间

Connection:连接的处理方式,一般都是会话保存

host:表示请求的ip和端口号,也可以理解为请求的主机名

User-Agent:客户端请求使用的浏览器信息

响应头:

响应体:

post:向服务端发送数据,按照http协议进行,服务器添加数据,post的请求方式会修改服务器上的数据

get和post的区别:

get的请求可以换粗

get的请求还可以保存在浏览器的cookie中

get的请求长度有限制

get就是获取数据

post的请求不能被缓存,也不会保存在浏览器的cookie中

post请求没有长度限制

请求的字符串不会显示,比较安全

小工具:

telnet:可以测试服务器的指定断开是否正常

yum -y install telnet

命令:telnet 192.168.233.20 80

nc:

命令:

test1:nc -l 8888

test2:nc 192.168.233.10 8888

http://www.lryc.cn/news/195734.html

相关文章:

  • Python学习基础笔记七十二——IDE集成开发环境
  • [MQ]Win平台RocketMQ安装启动
  • vscode工程屏蔽不使用的文件夹或文件的方法
  • 黑马JVM总结(三十四)
  • [linux]vncserver常用终端命令合集
  • 亚马逊、eBay,速卖通,国际站买家账号支付异常问题解决方法
  • Constitutional AI
  • TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
  • 数据结构-冒泡排序Java实现
  • 完整教程:Java+Vue+Websocket实现OSS文件上传进度条功能
  • 【微服务 SpringCloud】实用篇 · 服务拆分和远程调用
  • Linux 下I/O操作
  • C#内映射lua表
  • android studio检测不到真机
  • 【Eclipse】设置自动提示
  • 单片机TDL的功能、应用与技术特点 | 百能云芯
  • 解决笔记本无线网络5G比2.4还慢的奇怪问题
  • GitHub Action 通过SSH 自动部署到云服务器上
  • 【AOP系列】7.数据校验
  • 黑马JVM总结(三十七)
  • 企业如何通过媒体宣传扩大自身影响力
  • 处理vue直接引入图片地址时显示不出来的问题 src=“[object Module]“
  • vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
  • java正则表达式 及应用场景爬虫,捕获分组非捕获分组
  • 基于 Debian 稳定分支发行版的Zephix 7 发布
  • MBR20100CT-ASEMI肖特基MBR20100CT参数、规格、尺寸
  • 修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库)
  • github: kex_exchange_identification: Connection closed by remote host
  • AWS香港Web3方案日,防御云安全实践案例受关注
  • QT 集成MQTT过程