HTTP 详解

CodeSpecter
• 阅读 1552
什么是HTTP 协议

服务器传输超文本到本地浏览器的传送协议

URL

统一资源定位符 是用来标识资源的地址

这是例子
https://www.baidu.com/s?wd=hello&rsv_spt=1#5freshman=1#5

1、协议: https:(除了http 还有ftp等) 后面的 // 为分隔符
2、域名: www.baidu.com
3、路径: /s
3、端口: 跟在域名后 域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口(这里端口是省略的)
4、查询参数: ?wd=hello&rsv_spt=1#5freshman=1
5、锚点: #5

用 Chrome 发请求
  1. F12打开 开发者工具 打开 Network
    HTTP 详解
  2. 地址栏输入网址
  3. 在 Network 点击,查看 request,点击【view source】

HTTP 详解

嗯。。。下面这一片都是请求

用 curl 创造一个请求,并得到响应

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"

请求get

要请求的内容:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxx

请求方式(命令行里直接复制)
curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"

请求post

要请求的内容:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxx

请求方式(命令行里直接复制)
curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"


Http协议是什么?有哪些特点?

HTTP协议是服务器与浏览器之间传输数据的传送协议。
它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

URL 和 URI 是什么

URL:访问Web页面时需要输入的网址链接 如 https://segmentfault.com/ 就是URL
URI:统一资源标识符 用于标识互联网中的某一个资源(定义比较宽泛 已经超出了网页这个范畴)如:ftp ldap mailto news tel telnet urn 这些都属于 URI
URL是URI的子级

只要符合这个规范的都属于URI
协议名、登录信息、服务器地址、服务器端口号、带层次的文件路径、查询字符、片段标识符

TCP/ IP 七层模型

什么是 OSI 七层模型?

【这个知识点知道就行 已经被TCP/ IP 四层模型替代】

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

TCP/ IP 四层模型

什么是 TCP/ IP 四层模型?
1、应用层

应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。
这个层的处理过程是应用特有的
数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。每一层协议一般都会使用到传输层协议 TCP 和 UDP 协议之一:


运行在 TCP 协议上的协议:
HTTP(80端口),主要用于普通浏览
HTTPS(443端口),HTTP协议的安全版本
FTP(20和21端口),用于文件传输
POP3(110端口),用于收邮件
SMTP(25端口),用于发送电子邮件
SSH(22端口),用于加密安全登录


2、传输层
3、网络层

应用层和传输层有哪些协议?

如何理解 TCP/ IP 四层模型?

Http报文字段中,Cache-Control: no-cache 、Cache-Control: max-age=0、Cache-Control: no-store 有什么区别?

Cache-Control:
no-cache是浏览器更新网页时,所有网页不从本地缓存中读取,而是向服务器发送请求
no-cache表示存储,需要向服务器验证返回304后才使用
no-store表示不存储
max-age=0大部分情况下和no-cache一样,后退等操作不会再验证
在请求头中:
no-cache忽略没有过期的缓存,强行向服务器验证

完整HTTP请求过程

通常有7步:
1、建立TCP链接
2、Web浏览器向Web服务器发送请求命令
3、Web浏览器发送请求头信息
4、Web服务器应答
5、Web服务器发送应答头信息
6、Web服务器向浏览器发送数据
7、web服务器关闭TCP链接

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Wesley13 Wesley13
3年前
HTTP报文
一、HTTP概述(一)什么是HTTP协议?  当在web页面输入url后,浏览器会向web服务器请求资源以显示web页面,而它们之间使用的就是HTTP协议(HyperTextTransferProtocol,超文本传输协议),浏览器就是基于HTTP协议进行文档传输的。(二)HTTP协议的特点1、
Stella981 Stella981
3年前
Http协议、Tomcat、servlet
HTTP协议Http,超文本传输协议是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。Http协议由http请求和http响应组成http请求:1.请求行请求方式POST、GET、PUT、DELETE等请求的资源/DemoEE/form.html协议版本http/1.12.请求头cookie浏览器
Stella981 Stella981
3年前
CodeIgniter的URL URI
\\\\\\\\\\\\\\\\\\\\\\\\URI,是uniformresourceidentifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniformresourcelocator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locat
Wesley13 Wesley13
3年前
http协议请求响应详解
http协议请求响应详解一、http协议简介HTTP是HyperTextTransferProtocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。二、HTTP1.0的基本运行方式1、基于HTTP协议(https://www.osc
Wesley13 Wesley13
3年前
HTTP协议的头信息详解
HTTP协议的头信息详解HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。
Stella981 Stella981
3年前
Http工作原理(转)
  HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。         在了解HTTP如何工作之前,我们先了解计