`
zhangkehbg
  • 浏览: 10390 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

http协议学习二

 
阅读更多

之前的博客HTTP学习对HTTP协议的具体内容没有进行详细的,今天再补充点。

1,http url :格式:schema://host[":"port][abs_path

schema是表示用的什么协议,如http ,https,ftp等。

host代表Internet主机域名或者IP地址。

port代表端口号,默认端口为80。

abs_path代表资源的路径。如果没给出路径,则以‘/’的形式给出。

2,http请求:

格式:请求行 请求报头 请求正文

请求行:请求方法 请求资源的路径 请求的HTTP协议版本 分别代表Method Request-URI HTTP-Version CRLF  。

请求报头:

也叫请求消息,请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头,空行(只有CRLF的行),消息正文(可选)组成。

请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。

比较常用的请求报头有:Accept(制定客户端接受的文件类型),Accept-Charset(指定字符集),Accept-Encoding(指定接受的内容的编码),Accept-Language(指定一种语言),Authorization,Host(Host请求报头域主要用于指定被请求资源的Internet主机和端口号)

请求正文:

请求正文与请求消息中间隔一行,请求正文中可以包含客户提交的查询字符串信息等。

 

请求方法:

请求方法经常见到的有GET,POST两种方法,但又不只有这两种,还有PUT,DELETE,HEAD,TRACE,OPTIONS.每一种方法都有其相应的功能。GET主要负责从服务器获取资源信息,POST负责将附加的数据添加到请求中提交到服务器,PUT负责将增加资源信息,DELETE负责删除资源。TRACE :请求服务器回送收到的请求信息,主要用于测试或诊断,CONNECT:保留将来使用,OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

 

GET,POST的区别:

顾名思义,get就是从服务器获取资源,不会修改数据库的数据,而post则不同,post会向数据库发送修改请求,举个例子,get就如同我们在搜索框输入搜索的关键字,通过get方法,将输入的字添加到url后,传到服务器,查询相关的资源,而post就如我们在一个注册页,填写信息,信息就会通过post方法,将信息写在http请求正文中,传到服务器,存入并更改数据库。get能传的数据比较少,最多1024B,post则能传送比较大的数据。安全性方面,get方法比post若,因为get方法的信息都是直接写在url以明文的方式传送,而post则可以通过一些方法进行加密写入请求正文传送。

 

 

 

3,http响应:

包括:状态行,响应报头,响应正文

状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

附一些状态代码代表的含义:

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

状态描述既是对状态代码的描述。如 404   Not Found   请求的资源不存在。

 

响应报头:

响应报头用来传递一些不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。

常用的响应报头有location,server.location为重定向接受者到一个新的地址。server代表服务器用来处理请求的软件信息。

 响应正文:服务器返回的资源的内容。

 

 

今天还去了解了一下服务器和代理服务器。先说说代理服务器吧,代理服务器分几种,分别有正向代理,反向代理和透明代理。

正向代理总结一下就是位于客户端与原始服务器之间的服务器,起到加速访问的效果,如果代理服务器上有缓存的请求的数据,则可以直接返回给客户端。

反向代理与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置,直接发送请求到反向代理服务器,代理服务器再请求服务器然后响应请求。

反向代理的主要作用是负载均衡,当有多数的客户端请求原始服务器时就可以通过不同的代理服务器去响应请求,代理服务器上也可以缓存一些静态的资源,减轻原始服务器压力的同时提高响应速度。Nginx则是近几年最火的反向代理服务器。

还有一个透明代理,就不详细介绍了。

 

 

Session和Cookie

因为http是无状态的,Session和Cookie都是用来保持状态的,Session是服务器端的解决方法,而cookie是客户端的解决方法。

session:服务器上为客户端开辟的存储空间,第一步:创建session,在服务器端程序运行的过程中创建,创建session的时候,服务器会为该session生成唯一的sessionId.第二步:服务器在响应客户端请求的时候调用session,添加内容。第三步:服务器将sessionId发送这客户端。第四步:客户端再次请求的时候,带上sessionId.第五步:服务器通过请求中的sessionid找到session,并使用。

cookie:客户端在http请求中将个人信息传到服务器,服务器响应请求的时候,将个人信息加到响应头中,到达客户端时,将响应头中的信息存储为cookie。客户端再次请求的时候,会把cookie中的信息添加到请求头中发送到服务器。

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用cookie

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

 

 

分享到:
评论

相关推荐

    http协议学习系列

    包括如下章节,不可多得的学习资料 1. 基础概念篇 1 1.1 介绍 1 1.2 在TCP/IP协议栈中的位置 2 1.3 HTTP的请求响应模型 2 1.4 工作流程 3 1.5 使用Wireshark抓TCP、http包 3 1.6 常见头域 5 1.7 HTTP的几个重要概念 ...

    HTTP协议详解 学习servlet的必备资料

    HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP...

    这份资料非常全面且详细,从 HTTP协议诞生背景到 HTTP协议结构,再到其应用,几乎覆盖了HTTP协议 的方方面面,非常适合初

    这份资料非常全面且详细,从 HTTP协议诞生背景到 HTTP协议结构,再到其应用,几乎覆盖了HTTP协议 的方方面面,非常适合初学者入门! 资料也按目录进行编排,每一章下面都有更具体的内容: HTTP初探 1. HTTP版本 自...

    趣谈网络协议 pdf .zip

    14HTTP协议 15HTTPS协议 16流媒体协议 17P2P协议 18DNS协议 19HTTPDNS 20CDN 21数据中心 23移动网络 24云中网络 25软件定义网络 26云中的网络安全 27云中的网络Qo 28云中网络的隔离GRE、VXLAN 29容器网络 30容器网络...

    TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

    第2章 T/TCP协议 2.1 概述 2.2 T/TCP中的新TCP选项 2.3 T/TCP实现所需变量 2.4 状态变迁图 2.5 T/TCP的扩展状态 2.6 小结 第3章 T/TCP使用举例 3.1 概述 3.2 客户重新启动 3.3 常规的T/TCP事务 3.4 服务器收到过时的...

    使用labview的http协议post 和get ,带解析

    1.网页打不开的post不了,不存在的...2.post模式下内容格式要对,=赋值不能少 3.get模式下url=不能少 4.header 200表示响应成功,post 的内容要用web services readpostdata,两个VI一起打开,然后点击web开始就可以了

    http协议资源

    http协议学习资源,含ppt和pdf文件

    Android 服务器, HTTP 协议

    同宿舍的朋友之间谁手机上有好的文件想要分享(比如: 学习资料,照片,歌曲), 你会怎么做呢? 先找到你手机的 usb 线,然后 一端插到你的手机上,一端插到你的电脑上, 然后, 复制 -> 粘贴?... 何必如此繁琐, 只要有了这...

    TCP-IP协议详解1,2卷

     《TCP/IP详解 卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机...

    中软吉大网络协议仿真系统

    实验 12 应用层协议-1:超文本传输协议HTTP 实验 13 应用层协议-2:TELNET与FTP 实验 14 应用层协议-3:邮件协议SMTP 、POP3 、IMAP 实验 15 应用层协议-4:NetBIOS应用及SMB/CIFS协议 实验 16 路由协议-1:路由信息...

    python 零基础学习篇web服务器http协议介绍2 URL的介绍 .mp4

    python 零基础学习篇

    TCP/IP协议与网络编程技术

    第6章:简要的介绍了一下TCP/IP协议在Windows和LINUX操作系统下的实现原理TCP/IP协议的二进制代码。 下篇包含以下6章内容: 第7章:介绍了网络程序设计有关的基础知识、一个网络程序入门实例和Winsock中编写网络程序...

    基于OpenTCS二次开发的 AGV 调度系统源码+项目说明(支持Modbus, Http, Serial协议).zip

    基于OpenTCS二次开发的 AGV 调度系统源码+项目说明(支持Modbus协议 可与VREP联动仿真车辆 目前支持Modbus, Http, VREP, TCP, Serial协议).zip基于OpenTCS二次开发的 AGV 调度系统源码+项目说明(支持Modbus协议 可...

    TCPIP网络协议讲解

    《TCP/IP详解 卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机...

    Java毕业设计-Java多线程与线程安全实践-基于Http协议的断点续传.rar

    项目可以作为学习Java多线程编程、线程安全和Http协议的实践资源。对于有兴趣深入学习这些技术的读者来说,这是一个很好的起点。同时,项目也可以作为二次开发的基础,开发者可以在此基础上添加更多功能,如支持多种...

    实验3 传输层与应用层协议.docx

    1、捕获TCP三次握手的过程,说明其原理。 2、捕获HTTP工作过程,分析HTTP协议。 3、捕获UDP协议包,写出其格式。 4、捕获DNS数据包,写出DNS工作原理。

    Android应用源码之(Http协议).zip项目安卓应用源码下载

    Android应用源码之(Http协议).zip项目安卓应用源码下载Android应用源码之(Http协议).zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    TCP作业抓包——TCP、HTTP协议

    一、实验目的 学习使用网络抓包软件WireShark,理解网络协议实体之间的交互,巩固所学知识。掌握HTTP请求、响应的报文格式,分析、掌握HTTP请求、... 二、实验内容 分析Http协议请求及响应过程,掌握Tcp报文的格式。

    TCP_IP协议(全3卷高清HD).zip

     《TCP/IP详解 卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机...

    TPC-IP协议详解(全三卷)

    很全很详细,学习网络技术必不可少 TCP-IP详解.卷一:协议 TCP-IP详解.卷二:实现 TCP-IP详解.卷三:TCP事务协议,HTTP,NNTP和UNIX域协议

Global site tag (gtag.js) - Google Analytics