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

来源:互联网 发布:爱米网域名靠谱 编辑:程序博客网 时间:2024/05/22 01:49
一. 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\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发来的数据请求,对数据进行解析,然后将结果返回,然后经过浏览器进行解析,呈现在我们面前的一个个页面还有其他的一些信息


原创粉丝点击