您的位置:首页 > 理论基础 > 计算机网络

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

2017-08-12 08:06 543 查看
一. HTTP之URL篇

首先来看一下,我们一般在上网的时候,地址栏中经常会显示的信息,这里就举一些简单的例子
https:// href="http://www.baidu.com" target=_blank>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\r\n

注意:1.GET和、/a...之间有一个空格,b=20和http/1.0之间有一个空格

2.其中的\r\n每一行的标识,不仅仅是第一行的,另外规定就是\r\n不允许单独的出现

method字段:

GET:请求获取url所标识的资源

POST:在url所标识的资源后面附加上新的资源

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

GET /form.html HTTP/1.1\r\n

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



三.HTTP之响应篇

首先看响应的图



上图中有状态行中 有状态码和状态码描述,下面有几个实例

200 OK ---- 客户端请求成功了

404 Not Found --- 请求的资源不在,eg:输入了错的网址

403 Firbidden --- 服务器拒绝收到的请求,拒绝服务

例如 HTTP/1.0 200 OK\r\n

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

其他的字段和 请求中的是一样的

综上:服务器根据sock收到的client发来的数据请求,对数据进行解析,然后将结果返回,然后经过浏览器进行解析,呈现在我们面前的一个个页面还有其他的一些信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: