美文网首页
http协议学习

http协议学习

作者: 你就像只铁甲小宝 | 来源:发表于2018-12-08 16:12 被阅读23次

今天学了下http协议,总结了以下几个问题。

1. 什么是http协议

  • http协议是基于TCP/IP通信协议来传递数据。
  • http协议又叫超文本传输协议,是万维网服务器传输超文本到本地浏览器的协议。

2. URI,URL和URN的理解。

首先我们来看下面这张图:


关系图.png

从这张图中很容易看出它们的关系。

1.URI包括了URN和URL。
2.URL和URN都是URI的一种,但URI却不一定是它们。

看到一个很贴切的比喻,我们把URI比作人,URN就是人的名字,URL就是人的地址。

  • 也就是说URN确定了人的身份。有了名字,就算地址换了我们也能找到这个人。
  • URN提供了找到人的地址。但一旦地址换了我们可能就找不到这个人了。
  • 换句话说:URN和URL的区别就是,URN与资源的位置无关,当某个URN标识的资源在位置发生变化时,其URI可以保持不变。

URI,URL,URN的定义:

URI:

Uniform Resource Identifier,即统一资源标志符,用来唯一的标识一个资源。

URL:

Uniform Resource Locator,统一资源定位符。即URL可以用来标识一个资源,而且还指明了如何locate这个资源。(能知道这个资源的位置)

URN:

Uniform Resource Name,统一资源命名。即通过名字来表示资源的。
参考文章:

3.http中的request和response

request包和response包

http中resquest和response是对应的。

request中有请求行,请求头部,空行,和主体
response中有状态行,消息报头,空行,响应正文

用burpsuite抓的包

1.GET /osjson.aspx?query=%E9%AB%98%E6%9C%A8%E5%90%8C%E5%AD%A6&form=OSDJAS&language=zh-CN HTTP/1.1
2.Host: www.bing.com
3.User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
4.Accept: */*
5.Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
6.Accept-Encoding: gzip, deflate
7.Connection: close
8.
  • 1是请求行,请求类型为GET,使用的是HTTP/1.1版本
  • 2~7是请求头部
  • 8是空行
  • 这个request包没有主体
1.HTTP/1.1 302 
2.Cache-Control: private
3.Content-Length: 208
4.Content-Type: text/html; charset=utf-8
5.Location: https://cn.bing.com/osjson.aspx?query=%E9%AB%98%E6%9C%A8&form=OSDJAS&language=zh-CN
Vary: Accept-Encoding
6.Set-Cookie: SNRHOP=TS=636798042541327291&I=1; domain=.bing.com; path=/
X-MSEdge-Ref: Ref A: 195BE0810738433CA3E8475AD27BBC3C Ref B: BJ1EDGE0214 Ref C: 2018-12-07T18:30:49Z
Date: Fri, 07 Dec 2018 18:30:48 GMT
7.Connection: close
8.
9.<html><head><title>Object moved</title></head><body>
10.<h2>Object moved to <a href="https://cn.bing.com/osjson.aspx?query=%E9%AB%98%E6%9C%A8&amp;form=OSDJAS&amp;language=zh-CN">here</a>.</h2>
12.</body></html>
  • 1.是状态行,状态码为302,协议版本是HTTP/1.1
  • 2~7是消息报头
  • 8是空行
  • 9~11是响应正文

HTTP中的一些请求方式

  • GET 请求指定的页面信息,并返回实体主体。
  • HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
  • PUT 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE 请求服务器删除指定的页面。
  • CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  • OPTIONS 允许客户端查看服务器的性能。
  • TRACE 回显服务器收到的请求,主要用于测试或诊断。

4.HTTP中的状态码

状态码是当浏览器发送请求时,网页所在服务器返回的一个信息头。

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类:

  • 1xx:指示信息--表示请求已接收,继续处理
  • 2xx:成功--表示请求已被成功接收、理解、接受
  • 3xx:重定向--要完成请求必须进行更进一步的操作
  • 4xx:客户端错误--请求有语法错误或请求无法实现
  • 5xx:服务器端错误--服务器未能实现合法的请求
常见的HTTP状态码
  • 200 OK //请求成功。一般用于GET与POST请求
  • 400 Bad Request //客户端请求的语法错误,服务器无法理解
  • 401 Unauthorized //请求要求用户的身份认证
  • 403 Forbidden //服务器收到请求,但是拒绝提供服务
  • 404 Not Found //请求资源不存在,eg:输入了错误的URL
  • 500 Internal Server Error //服务器发生不可预期的错误
  • 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    参考文章:
    http://www.cnblogs.com/ranyonsue/p/5984001.html
    https://www.cnblogs.com/wuyun-blog/p/5706703.html

相关文章

  • http协议学习

    简介: http协议是提供发布和接收html的方法。 优点: 1、支持客户端服务器协议 2、简单快速 3、灵活 4...

  • HTTP协议学习

    看了一篇《HTTP协议详解》(原博主找不到了,这里是转载的地址),以下是阅读的时候整理的知识点:

  • HTTP协议学习

    简介: HTTP协议叫:超文本传输协议从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/I...

  • http协议学习

    什么是http协议?HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写...

  • http协议学习

    今天学了下http协议,总结了以下几个问题。 1. 什么是http协议 http协议是基于TCP/IP通信协议来传...

  • 2018-10-13

    学习http协议

  • http协议缓存机制

    2.1、学习http协议,理解http请求-响应模式2.2、理解http是应用层协议,它是构建在TCP/IP协议上...

  • 期末总结

    #期末总结 ---------- + 了解学习了HTTP协议和有关HTTP协议的一些知识,例如:HTTP首部、报文...

  • RPC学习笔记-协议

    RPC协议 RPC协议同HTTP协议一样,都是属于应用层的协议,可以通过学习HTTP的协议来理解RPC协议. HT...

  • D14 HTTP协议

    HTTP协议 HTTP协议是学习java web 开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更...

网友评论

      本文标题:http协议学习

      本文链接:https://www.haomeiwen.com/subject/nppthqtx.html