HTTP协议

简介: HTTP协议

HTTP属于是应用层最广泛使用的协议之一!

浏览器获取到网页就是基于HTTTP协议

HTTP就是浏览器和服务器之间的桥梁

HTTP(1.1)目前最常见的(课堂使用)

HTTP往往是基于传输层的TCP协议实现的!!

在浏览器中输入网址/URL

sogou.com——》网址/URL

浏览器会根据这个URL,构造出一个HTTP请求,发送给服务器,服务器就会返回一个HTTP响应(包含HTML,JS,CSS,图片……),浏览器把得到的HTML等数据进行显示出来(渲染)

其实http协议的交互详细过程,可以借助第三方工具来看到的:称为“抓包工具”,如:fidder

打开fidder,立即显示出当前电脑上某个程序使用http和服务器交互的过程!

fidder本质上是一个代理程序,使用的时候,有两个注意事项:

  1. fidder可能和别的代理程序起冲突

使用的时候,要关闭其他的代理程序(包括一些浏览器插件)(所谓的代理是指:找个人给你干活)

代理分为两种:

正向代理:代表客户端的代理

反向代理:代表服务器的代理

  1. 要想正确的抓包,核对开户HTTPS功能
https是基于http搞出来的进化版协议,当下互联网绝大部分的服务器都是https的!!fidder默认情况下不能抓https的包,需要咱们手动启用一下https,并且按照证书(至于怎么安装证书,请移步它文,在此不做过多的讲述)

了解HTTP关键信息的含义:学习一个协议,就是学习它的报文格式!

GET https://www.sogou.com/ HTTP/1.1

首行:包含三个部分,之间使用空格来区分!

  1. GET:HTTP的方法(methond)
  2. https://sogou.com/(URL/网址)URL是唯一资源定位符,标识整个互联网上的唯一的资源的位置(定位符:资源在哪儿??在哪个服务器的哪个目录下的哪个文件??
  3. HTTP/1.1:版本号

认识URL:

URL 最关键的四个部分

  1. 域名/IP
  2. 端口号
  3. 带层次的路径
  4. 查询字符串

其实一个URL的几个部分,有些是可以省略的(默认)

如:https://www.sogou.com/

  1. 省略了端口——》浏览器会通过一个默认端口,对于http默认端口是80,对于https默认端口是443
  2. /也是路径,没省略,只是有点短——》‘/’代表根目录(HTTP服务器的根目录)

一个HTTP服务器提供的资源是很多的,不同的路径,拿到的是不同的资源

https://www.sogou.com

https://www.sogou.com/index.html

HTTP协议:应用层协议,用来浏览器和Web服务器之间的交互!

方法 说明
GET 获取资源
POST 传输实体主类
PUT 传输文件
HEAD 获得报文首部
DELETE 删除文件
OPTIONS 询问支持的方法
TRACE 追踪路径
CONNECT 要求用隧道协议连接代理
LINK 建立和资源之间的联系
UNLNE 断开连接关系

其实在实际开发中,这里的方法,大部分是用不到的,最常见的就两个:GET,POST

天下的HTTP方法是十斗,GET独占八斗,POST占一斗,剩下的方法共分一斗!

GET请求:

  1. 在浏览器地址栏里直接输入URL
  2. html里的link , script , img……标签
  3. 通过js来构造get……

POST请求:

  1. 最典型的就是登录,登录的时候会涉及到POST
  2. 上传文件/图片

HTTP请求可以认为是分成四个部分!!

  1. 首行
  2. 请求头(header)
  3. 空行
  4. 正文(body)

如果是GET请求,没有body

如果是POST请求,一般有body

在抓包的结果中可以看到post的body是程序员自定义的内容!

uid——》唯一身份标识!

可以通过一定的算法,构造出一个长的字符串,每次构造的长字符串都是通用的!

GET和POST之间的区别??(其实没有本质区别,在大部分场景下,彼此之间能相互替代,主要还是使用习惯的差异!)(经典面试题)

  1. GET也可以给服务器传递一些信息

GET传递的信息一般都是放在query string

POST传递的信息,则是通过body

  1. 语义上的差别(习惯用法)

GET请求一般是用于从服务器获取数据

POST一般是用于给服务器提交数据

  1. 幂等:相同的输入,得到的结果也是确定的

GET通常会被设计成幂等的

POST不要求幂等

  1. 缓存:把请求的结果保存下来了,下次就不必请求了,直接取缓存的结果即可!(前提:幂等!!结果确定且唯一)

GET可以被缓存的

POST则一般不能被缓存

  1. 网络上的有些说法,有待商讨…………
  2. GET请求传输的数据存在上限

如:上限的版本:1KB,2KB,1024KB等,实际上rfc标准文档中,对于HTTP GET请求的长度上限明确说明:没有规定!

只不能有些上古时期的浏览器/服务器,实现的时候搞了上限!

  1. POST比GET更安全

依据就是:如果使用GET请求进行登录,此时用户名,密码可以通过query string来传递,就会出现在地址栏中,很容易被别人看到!

安全:指的是:如果黑客获取到你的数据,你的敏感信息不会泄露,安全核心要素是:加密

认识header(请求报头)——》一堆键值对!

每一行是一个键值对,键和值之间使用的是:(冒号分割),这些键值对都是HTTP事先定义好的,有特定的含义的!!

HOST    Host:edu.bitejiuyeke.com

大概描述了服务器所在的地址和端口

HOST这里的地址和端口,用来描述你最终要访问的目标

edu.bitejiuyeke.com这个内容大概率和URL中是一样的,也有一定的情况下是不同的!

Content-length  表示body中的数据长度(字节)

Content-type  表示请求的body中的数据格式

如果是GET请求,则没body,请求中没有这俩字段

如果是POST请求,则有body,请求中必须有这俩字段

User-Agent(简称UA):描述了浏览器和操作系统的版本!

现在User-Agent主要用来区分PC端和移动端

Referer:表示当前页面的“来源”(哪个页面跳转的?)

如果直接通过地址栏输入地址,或者直接点击收藏夹……都没有Referer

Cookie:非常重要的header属性

本质是浏览器给网页提供的本地存储数据的机制

网页,默认是不允许访问你计算机硬盘的(保证安全),cookie相当于浏览器对于访问硬盘做出了明确的限制!cookie就是通过键值对的方式来组织数据的!

注意:cookie中具体存啥内容,也就是程序员自定义的部分!则数据的具体含义,只能开发整个程序员才能知道!

关于cookie的各种疑问??

  1. Cookie从哪里来??

cookie在的数据来自于服务器,服务器会通过HTTP响应的报头部分(Set—Cookie字段)

服务器来决定浏览器的Cookie要存什么??

  1. Cookie是在哪里存的??

可以认为是存在与浏览器中,存在于硬盘的!!

Cookie存的时候,是按照浏览器+域名维度来进行分组的,不同浏览器各自存各自的cookie,同一个浏览器的不同域名对应不同的cookie

  1. Cookie要到哪里去??

回到服务器里

因此Cookie就是浏览器持久化存储数据的一种机制!!


请求正文:body

  1. spplication/x—www—form—urlencoded
抓取“码云上传头像请求”
  1. multipart/form—data
抓取山大教务系统的“上传简历功能”
  1. application/json
抓取“山大教务系统的登录页面”
相关文章
|
4天前
|
缓存 安全 前端开发
探索HTTP协议:网络通信的基石
探索HTTP协议:网络通信的基石
|
5天前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
http协议 报文 给你讲明白咯,web开发基础
http协议 报文 给你讲明白咯,web开发基础
|
6天前
|
存储 缓存 JSON
【JavaEE】HTTP应用层协议
【JavaEE】HTTP应用层协议
14 1
|
6天前
|
移动开发 网络协议 网络安全
【网络安全 | 网络协议】一文讲清HTTP协议
【网络安全 | 网络协议】一文讲清HTTP协议
23 0
|
6天前
|
安全 网络协议 网络安全
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
HTTP和HTTPS是互联网主要的两大协议,HTTP是基础的简单请求-响应协议,常用于TCP上,但数据传输不安全。HTTPS是HTTP的安全版本,添加了SSL层进行加密和身份验证,提供更高的安全性,用于保护数据和验证网站真实性。HTTPS需CA证书,可能产生费用,并使用443端口而非HTTP的80端口。
|
6天前
|
网络协议 安全 数据安全/隐私保护
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
SOCKS5和HTTP是两种代理协议,前者是通用型,支持多种网络流量,提供身份验证、IPv6支持及UDP兼容性,更适合实时数据传输。HTTP代理专用于HTTP协议,适用于Web资源请求。SOCKS5在传输方式、功能、兼容性和安全性上更胜一筹,而HTTP代理则在处理HTTP请求时更专业。选择代理协议应根据需求和应用场景,考虑服务的稳定性和安全性。付费代理如kookeey全球代理,支持双协议,速度快且可扩展性强,是可靠的选择。
|
6天前
|
数据采集 网络协议 安全
2024年,你还在等什么?一起探索HTTP协议的奥秘!
2024年,你还在等什么?一起探索HTTP协议的奥秘!
|
6天前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程
|
6天前
|
存储 网络协议 JavaScript
应用层 HTTP协议(1)
应用层 HTTP协议(1)
12 0