http 协议

HTTP是基于TCP/IP的通信协议,定义了GET和POST请求的不同处理方式。GET请求参数在URL中传递,POST放在RequestBody。HTTP/1.1支持持久连接和管道机制以优化性能。HTTPS通过SSL加密,提供更高的安全性。浏览器发出请求到收到响应涉及URL解析、DNS查询、网络传输和服务器处理等多个步骤。
摘要由CSDN通过智能技术生成


HTTP
HTTP 是基于 TCP/IP 的互联网通信协议

http 规定 
get 请求 参数通过 URL 传递
post 请求 数据放在 Request body 里

get 请求 浏览器会把 http header 和 data 一并发送出去,服务器响应 200 返回数据
post 请求 浏览器先发送 header,服务器响应 100 continue,浏览器再发送 data,服务器响应 200 返回数据

大多数浏览器通常都会限制 url 长度在 2K 个字节,大多数服务器最多处理 64K 大小的 url

http 请求头

HTTP/1.1 默认 持久连接 HTTP Persistent Connections
connection: keep-alive  
在同一个 TCP 连接上,进行多次 HTTP 通信
HTTP/1.1 默认不会主动关闭 TCP 连接, 客户端或服务端发现对方一段时间没有活动了,就会关闭连接
长连接可以减少重复建立断开 TCP 连接的开销,缩短 HTTP 请求响应的时间,提高 Web 页面显示的速度
大多数浏览器,同一个域名可以建立6个持久连接

HTTP/1.1 引入管道机制 pipelining, 基于持久连接, 可并行发送多个请求,而不是等一个请求响应完了才能发送下一个请求,服务器按请求先后顺序响应
缩短 HTTP 请求响应的时间,提高 Web 页面显示的速度

HTTP/1.0 默认 短连接
connection: close
每进行一次 HTTP 通信,就断开一次 TCP 连接


referer 请求来源
比如 www.google.com 里点击 www.baidu.com 链接,Referer=http://www.google.com
location 跳转
当浏览器接受到响应头中的 Location: xxxx 后,就会自动跳转到 xxxx 指向的 URL 地址

     类别                            原因短语
1xx    Informational(信息性状态码)    接受的请求正在处理
2xx    Success(成功状态码)            请求正常处理完毕
3xx    Redirection(重定向)            需要进行附加操作以完成请求
4xx    Client error(客户端错误)            客户端请求出错,服务器无法处理请求
5xx    Server Error(服务器错误)            服务器处理请求出错

200 OK 表示从客户端发送给服务器的请求被正常处理并返回

400 Bad Request 表示请求报文中存在语法错误
401 Unauthorized 未经许可,需要通过 HTTP 认证
403 Forbidden 服务器拒绝该次访问(没有访问权限)
404 Not Found 表示服务器上无法找到请求的资源
405 Method Not Allowed 请求的方法类型不对,如用 post 请求了 get 服务

500 Inter Server Error 表示服务器在执行请求时发生了错误
503 Server Unavailable 表示服务器暂时处于超负载或正在进行停机维护,无法处理请求

uri 有两种形式,url 和 urn
urn 目前还不成熟,所以目前的 uri 基本都是 url
url - 统一资源定位符,描述了特定服务器上某资源的特定位置
urn - 统一资源名,用同一个名字通过多种网络访问协议来访问资源,与目前的资源所在地无关,
目前还不成熟,未大范围使用
------------------------------------------------
HTTPS 和 HTTP 的主要区别
------------------------------------------------
https 默认端口 443,需要申请证书,通过 ssl 加密,传输的是密文,安全性更高
http 默认端口 80,传输是明文
两者的连接方式不同
------------------------------------------------

------------------------------------------------
浏览器发出一个请求到收到响应经历了哪些步骤
------------------------------------------------
1.浏览器解析用户输入的 url, 生成一个 http 格式的请求
2.域名解析,先从本地的 hosts 文件里查找是否有域名对应的 ip 配置, 没有就请求 dns 拿对应的 ip
3.浏览器通过操作系统发送请求
4.经过网络中的路由器交换机,最终到达对应的服务器
5.服务器转发请求给对应端口的应用程序,比如 8080 的请求转给 tomcat
6.tomcat 根据 url 映射,经过 springMVC 的 dispatcherServlet, controller处理后得到响应结果
7.tomcat 发送响应结果给客户端
8.客户端拿到结果后传递给浏览器解析渲染页面
------------------------------------------------


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三师弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值