首页 > HTTP项目1.0 -- HTTP协议基础知识

HTTP项目1.0 -- HTTP协议基础知识

一. HTTP之URL篇
首先来看一下,我们一般在上网的时候,地址栏中经常会显示的信息,这里就举一些简单的例子
https://www.baidu.com
https://113.2.7.58.25/a/b/c.html
从上面的简单的例子我们把url分成了以后的几个部分,请看下图


第一个协议就不用解释了一般浏览器使用的协议都是http的协议;第二个 主机号,其实是一台服务器的IP地址;第三个端口号,所谓的端口号就是主机上面的一个程序号,这里一般默认的是80,然后很多浏览器是省略不显示的;第四个是路径,就是想对于你的主工作路径的目录,如果不显示的话,就是默认的/,主工作目录。比如我们输入www.guet.edu.cn,这个时候浏览器会默认的改成http://guet.edu.cn/


让我们简单的分析一下下面的一个url请求,
https://123.2.7.58.25:80/a/b/c.php?a=100&b=20




浏览器的意思是,访问主机号为123.207.58.25这台主机下面的80号服务下的根目录下的a目录下的b目录下的c.php资源,并且要提交的数据是a=100和b=20
上面的是大多数的浏览器中的url大家可以看一下,中间以?隔开的是我们要提交的数据,还有时候是没有,提交数据时候大概就是我们提交一个表单的过程,比如输入用户名和 密码等
下面就随机从网上打开了几个网页,大家看一下
https://www.baidu.com/index.php?tn=monline_3_dg
https://mp.weixin.qq.com/misc/appmsgcomment?action=list_latest_comment&begin=0&count=10&mp_version=7&token=1240007609&lang=zh_CN
我们看到最后一个url虽然内容有很多,但是也可以被我们看成 是几部分,注意中间的?,那个后面的是我们要提交的数据,然后这些数据是&来区分各个数据的,提交的数据,一直采用了name=value的形式
二. HTTP之请求篇
首先看一个图来进行讲解




对于之前的一个网址,https://123.207.58.25:80/a/b/c.php?a=100&b=20去掉https,去掉IP,去掉端口号,剩下的部分(/a/b/c.php?a=100&b=20)就是存放在上图中url字段中的数据
这里在补充一点就是,我们的方法一般是GET和POST方法,在上面的请求行中,方法和url字段中有一个空格,url和协议版本中有一个空格。
那上面的实例来说就是,我们的请求行中的数据就是
GET /a/b/c.php?a=100&b=20 http/1.0
注意:1.GET和、/a...之间有一个空格,b=20和http/1.0之间有一个空格
2.其中的 每一行的标识,不仅仅是第一行的,另外规定就是 不允许单独的出现


method字段:
GET:请求获取url所标识的资源
POST:在url所标识的资源后面附加上新的资源


GET方法:在浏览器的地址栏中输入网址的方式或者是浏览网页,浏览器多采用GET方法
GET /form.html HTTP/1.1


POST方法:要求被请求的服务器接收负载方法后面的数据,常用于提交表单,比如我们登录一个网站的时候需要输入密码。




三.HTTP之响应篇
首先看响应的图




上图中有状态行中 有状态码和状态码描述,下面有几个实例
200 OK ---- 客户端请求成功了
404 Not Found --- 请求的资源不在,eg:输入了错的网址
403 Firbidden --- 服务器拒绝收到的请求,拒绝服务


例如 HTTP/1.0 200 OK


在请求正文中,就是服务器给我们放回的请求数据,比如html,这个时候服务器就给我们返回了一个html的一个文件,然后经过了浏览器的解析之后就是呈现在我们面前的一个页面
其他的字段和 请求中的是一样的


综上:服务器根据sock收到的client发来的数据请求,对数据进行解析,然后将结果返回,然后经过浏览器进行解析,呈现在我们面前的一个个页面还有其他的一些信息




更多相关:

  • 英语的重要性,毋庸置疑!尤其对广大职场人士,掌握英语意味着就多了一项竞争的技能。那,对于我们成人来说,时间是最宝贵的。如何短时间内在英语方面有所突破,这是我们最关心的事情。英语学习,到底有没有捷径可以走,是否可以速成?周老师在这里明确告诉大家,英语学习,没有绝对的捷径走,但是可以少走弯路。十多年的教学经验告诉我们,成功的学习方法可以借...

  • 展开全部 其实IDLE提供了一个显32313133353236313431303231363533e78988e69d8331333365663438示所有行和所有字符的功能。 我们打开IDLE shell或者IDLE编辑器,可以看到左下角有个Ln和Col,事实上,Ln是当前光标所在行,Col是当前光标所在列。 我们如果想得到文件代码...

  • 前言[1]从 Main 方法说起[2]走进 Tomcat 内部[3]总结[4]《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spri...

  • 【本文摘要】【注】本文所述内容为学习Yjango《学习观》相关视频之后的总结,观点归Yjango所有,本文仅作为学习之用。阅读本节,会让你对英语这类运动类知识的学习豁然开朗,你会知道英语学习方面,我们的症结所在。学习英语这类运动类知识,需要把握四个原则第一,不要用主动意识。第二,关注于端对端第三,输入输出符合实际情况第四,通过多个例子...

  • 点云PCL免费知识星球,点云论文速读。文章:RGB-D SLAM with Structural Regularities作者:Yanyan Li , Raza Yunus , Nikolas Brasch , Nassir Navab and Federico Tombari编译:点云PCL代码:https://github.co...

  • 限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务、网关、和一些后台服务中会经常遇到。限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现。限流器的实现方法有很多种,例如 Token Bucket、滑动窗口法、Leaky Bucket等。在 Golang 库中官方给我们提供...

  • HTTP和HTTPSHTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(Secure...

  •     注意!!!(修改于2020年7月18日)   在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {"message": "Network Error","name": "Error","stack": "Err...

  • 一.  GET_POST与开发者工具 1.      浏览器的基本工作规则 浏览器请求访问服务器,服务器返回数据 (1)    请求的格式 GET:长度不能大于2k参数明文显示在地址栏,不保密,通常用在查询请求 POST:长度可以很大,参数写在请求体内,相对保密,通常用是提交内容的请求 上图中a.com是域名,x...

  • JSP相当于在HTML页面中加上Java代码,一般在标签中放入主要代码。 在JSP里用<%...%>把Java代码包含起来的。   Servlet的生命周期: ①被服务器实例化后,容器运行init方法。 ②当请求(Request)到达时,运行service方法,service方法会运行与请求对应的doXXX方法(d...

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...