Linux网络基础2之http

这篇具有很好参考价值的文章主要介绍了Linux网络基础2之http。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里是ky233的主页,欢迎光临~https://blog.csdn.net/ky233?type=blog

目录

一、认识URL

1.认识URL

2.urlencode和urldecode

二、HTTP协议格式

1.快速构建http请求和相应的报文格式

三、http demo

1.GET和POST

2.HTTP的状态码

3.http的特征

4.HTTP常见Header

5.Cookie和Set-cookie


应用层:就是程序员基于socket接口之上编写的具体逻辑,做的很多工作,都是和文本处理有关的!——协议分析与处理

所以http协议,一定会具有大量的文本分析和协议处理!

一、认识URL

1.认识URL

平时我们俗称的 "网址" 其实就是说的 URL

Linux网络基础2之http,http,网络协议,网络

我们平时上网无非就是我们想获取或者上传资源

一张图片、一这段视频,这些资源在没有被拿到的时候是在对应的Linux服务器上,在一个服务器上可能存在很多的文件资源,当我们请求资源拿到本的的时候,服务器会打开你要访问的文件,读取该文件通过网络发送到客户端

所以我们要打开这个文件先要找到它,这时候就用到路径来标识!

Linux网络基础2之http,http,网络协议,网络

所有的资源:全球范围内,只要找到它的url就能访问到该资源,也成为www,万维网

2.urlencode和urldecode

像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现. 比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义。

 转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式

例如:

Linux网络基础2之http,http,网络协议,网络

二、HTTP协议格式

Linux网络基础2之http,http,网络协议,网络

在双方通信之前已经进行了三次握手的过程

1.快速构建http请求和相应的报文格式

单纯在报文的角度,http可以是基于行的文本协议!

Linux网络基础2之http,http,网络协议,网络

如何看待:在三次握手之后,这不就是客户端在给服务器发送大量的字节流吗?

所以我们可以看成是线性结构

Linux网络基础2之http,http,网络协议,网络

Linux网络基础2之http,http,网络协议,网络

如何看待,也是看成线性结构!

其中请求行中的协议版本是客户端告诉服务端,客户端用的http版本,而响应行中的协议版本是服务端告诉客户端,服务端用的http版本

http是如何区分报头和有效载荷的呢?

有效载荷:正文部分的内容

答案很简单,是通过空行\r\n的方式来区分的

也就是说我们一定能把报头读完,所以接下来读的就是正文,那么我们如何得知正文的大小呢?

其中报头当中就包含了一种属性Cotent-Length,后面跟的就是正文的长度

三、http demo

1.GET和POST

我们平时上网行为分为两种,从服务器拿资源,以及上传资源

其中拿资源一般GET,上传资源两者都可

GET:是通过URL向服务端传参的,会回显用户的私密信息,不够私密

POST:是通过http的正文部分提交参数的,不会回显,在私密性方面是有保证的

注意:私密性不是安全性

2.HTTP的状态码

Linux网络基础2之http,http,网络协议,网络

永久重定向301和临时重定向302、307

永久重定向:影响用户后续的请求策略如看付费电影,买一次直接就可以看了

临时重定向:不影响用户后续的请求策略

Linux网络基础2之http,http,网络协议,网络

也就是说,客户端发送了一个请求,服务端返回错误码302原因是found,并且会告诉一个新的地址,客户端在向新的地址发送请求

3.http的特征

1.简单快速

2.无连接:虽然底层是TCP但是连接时TCP的事情和我http有什么关系

3.无状态:协议是不会记录你的访问记录之类的,但是登录网站会记录,这是因为因为业务逻辑来管的

4.HTTP常见Header

  • Content-Type: 数据类型(text/html等)
  • Content-Length: Body的长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent: 声明用户的操作系统和浏览器版本信息;
  • referer: 当前页面是从哪个页面跳转过来的;
  • location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

5.Cookie和Set-cookie

Cookie简单来说就是用来保存用户的私密信息的

Linux网络基础2之http,http,网络协议,网络

Linux网络基础2之http,http,网络协议,网络

但是这种不安全,有风险,所以现如今我们在登陆或者注册的时候生成一个session id,在服务端保存了私密信息,这样客户端发送这个id就可以自动登录了

Linux网络基础2之http,http,网络协议,网络

Set-cookie是写在代码中的,设置之后就可以在http的属性中看到cookie的内容

5.短链接与长连接

短链接就是指一次只传输一个文件如一张图片,长连接则是一次性传输多个文件

Linux网络基础2之http,http,网络协议,网络文章来源地址https://www.toymoban.com/news/detail-838463.html

到了这里,关于Linux网络基础2之http的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux网络基础2之http

    这里是ky233的主页,欢迎光临~ https://blog.csdn.net/ky233?type=blog 目录 一、认识URL 1.认识URL 2.urlencode和urldecode 二、HTTP协议格式 1.快速构建http请求和相应的报文格式 三、http demo 1.GET和POST 2.HTTP的状态码 3.http的特征 4.HTTP常见Header 5.Cookie和Set-cookie 应用层:就是程序员基于socket接口之

    2024年03月11日
    浏览(68)
  • Linux 网络基础(1)基础知识、IP地址、端口、协议、网络字节序

    网络发展背景: 网络的划分:局域网(覆盖范围在1000m以内)、城域网(覆盖范围在20km以内)、广域网(更大范围) 组网方式:以太网、令牌环网.... 日常名词:互联网,因特网----说的是一个网络,就是国际化的广域网 网卡:实现数字信号与电信号之间的转换 中继器:信号

    2024年02月05日
    浏览(77)
  • Linux云计算之网络基础4——ICMP协议和ARP协议

    目录 一、ICMP协议 ICMP报文被封装在IP数据报中发送 ICMP报文的种类 ICMP差错报告报文 ICMP询问报文 ICMP的典型应用 1.分组网间探测PING: 2.跟踪路由traceroute: ICMP报文结果统计 ping命令的使用 二、ARP地址解析协议 ARP:地址解析协议 ARP缓存表    ARP报文 ARP攻击与欺骗 ARP攻击 如何

    2024年04月14日
    浏览(46)
  • Linux【网络基础】数据链路层&IP协议技术补充&DNS&DHCP

    数据链路层的主要功能就是负责相邻设备之间的数据传输 。 在网络层是点对点之间的通信。主要通过IP协议描述起点到终点。而链路层则是对网络层的补充,负责在起点到终点的路径中,每一个相邻节点的数据传输。 网络层主要关心的是从起点到终点 链路层则关心的是其中

    2024年02月14日
    浏览(40)
  • 【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}

    了解网络发展背景,对局域网/广域网的概念有基本认识; 了解网络协议的意义, 重点理解TCP/IP五层结构模型; 学习网络传输的基本流程,理解封装和分用; DHCP(动态主机配置协议,Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

    2024年04月14日
    浏览(42)
  • 【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

    网络的发展分为一下几个阶段: 独立模式: 计算机之间相互独立: 此时计算机之间是相互独立的,每个人在执行任务的时候是独立的,需要等待前一个将任务完成之后,自己才能进行执行任务,是串行执行的,效率很低。 网络互联: 多台计算机连接在一起, 完成数据共享:

    2024年02月03日
    浏览(35)
  • 网络基础与网络协议

    抽象语言——电脑(加工)——二进制——抽象语言 应用层: 跟人进行交互(人机交互)——我们给他输入抽象语言——编码——后台程序 表示层: 将“编码”转化为电脑可以识别的二进制 介质访问控制层(MAC): MAC地址是网卡决定的,是固定的。 物理层: 人类最早的

    2024年02月22日
    浏览(58)
  • 网络基础知识:了解网络协议的组成和常见的网络协议

    网络基础知识,了解网络协议的组成和常见的网络协议 1、协议及协议栈的基本概念 1.1、什么是协议 协议是网络中计算机或设备之间进行通信的一系列规则的集合。常用协议有IP、TCP、HTTP、POP3、SMTP等。 1.2、什么是协议栈 在网络中,为了完成通信,必须使用多层上的多种协

    2024年02月07日
    浏览(55)
  • 网络基础:通信原理及网络协议

    集线器:一个口收到的信号原封不动地转发给其他所有口,其他口上的设备自己决定是否接收信号。有点类似广播,但必广播更纯粹。由于hub只是单纯地转发,所以工作在物理层(OSI第一层) 类似于广播模式,纯硬件 网桥:工作在数据链路层(OSI第二层)。以太网中,数据

    2024年02月21日
    浏览(33)
  • 认识协议【网络基础】

    在网络通信中,协议(Protocol)是指计算机或设备之间进行通信的一系列规则的集合。 不管是网络还是生活中,协议是一种事先约定好的规则,通信的参与方按照同一份规则进行通信,如连接方式,如何识别等等。只有事先约定好了规则,才能保证后续通信时的效率和一定的

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包