HTTP协议是超文本传输协议的所写,它是TCP/IP协议的一个应用层协议,用于定义web浏览器和web服务器之间交换数据的过程。

TCP/IP协议的应用层协议还有POP3等协议

一、HTTP请求

(一)一个完整的HTTP请求包括:

  一个请求行、若干请求头、以及实体内容。

 GET方式向服务器发请求的特点:提交给服务器的数据量不能超过1k;提交的数据在URL地址里是可见的,如果涉及到敏感信息不推荐使用该方法。

 POST方式向服务器发请求的特点:提交给服务的数据量无限制;提交的数据在地址栏的url里是不可见的,可用于向服务器传递敏感信息,如用户名密码等。

(二)HTTP请求的细节——消息头

  Accept:用于告诉服务器,客户机支持的数据类型;

  Accept-Charset:用户告诉服务器,客户机采用的编码;

  Accept-Encoding:客户机支持的数据压缩格式;

  Accept-Language:客户机的语言环境;

  Host:客户机通过这个头告诉服务器,想访问的主机名;

  If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间;

  Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链)

  User-Agent:客户机通过这个头告诉服务器,客户机的软件环境;

  Cookie:客户机通过这个头可以向服务器带数据;

  Connection:close/keep-alive(保持链接或断开链接)

  Date:

二、HTTP响应

  (一)一个完整的HTTP响应包括:

服务器在给浏览器回送数据时,可以通过消息头来控制浏览器怎么处理回送的数据以及告诉客户机服务器的一些基本信息。

(二)HTTP响应细节——状态行

  格式:HTTP版本号  状态码  原因叙述;举例:HTTP/1.1 200 OK

  状态码用于表示服务器对请求的处理结果,它是三位的十进制数。

(三)HTTP响应细节——常用响应头

  Location:这个头配合302状态码使用,用于告诉客户机找谁。用location和302实现请求重定向

  Server:告诉浏览器服务器的类型;

  Content-Encoding:通过这个头浏览器数据的压缩格式

  Content-Length:服务器通过这个头告诉浏览器回送数据的长度

  Content-Type:服务器通过这个头告诉浏览器回送数据的类型

HTTP请求与响应的更多相关文章

  1. Django底层剖析之一次请求到响应的整个流程

    As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...

  2. 初入网络系列笔记(4)HTTP请求和响应

    一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...

  3. http协议(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  4. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

  5. struts2基础——请求与响应、获取web资源

    一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...

  6. 浏览器-Tomcat服务器-请求与响应

    浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...

  7. 写一个ActionFilter检测WebApi接口请求和响应

    我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把 ...

  8. AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应

    Web 开发中,除了数据操作之外,最频繁的就是发起和处理各种 HTTP 请求了,加上 HTTP 请求又是异步的,如果在每个请求中来单独捕获各种常规错误,处理各类自定义错误,那将会有大量的功能类似的代码 ...

  9. Http请求与响应格式

    原文:http://www.cnblogs.com/z941030/p/4699779.html Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定. ...

  10. HeadFirst Jsp 04 (请求和响应作为servlet)

    servlet 的存在就是为了客服服务, servlet的任务是得到一个客户的请求, 再发回一个响应. 由上图可知, web 容器会在启动后就加载所有的servlet类, 并为之创建实例和初始化 注意 ...

随机推荐

  1. SQL分组多列统计(GROUP BY后按条件分列统计)

    as tjsl from fyxx group by zt,whbmbh end) as ybhsl from fyxx group by whbmbh 下面是摘自别人的博客 最近遇到一个问题,需要对 ...

  2. BZOJ 2096: [Poi2010]Pilots

    Description 求一个最长的序列,最大值最小值之差不超过 \(k\) . Sol 单调队列. 一个队列直接上就行.. Code /******************************* ...

  3. docker版wordpress

    拉取wordpress镜像 docker pull wordpress:latest 创建mysql 容器docker run --name wordpress-mysql -e MYSQL_ROOT ...

  4. Linux下用户组、文件权限详解

    在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创 ...

  5. java并行计算Fork和Join的使用

    Java在JDK7之后加入了并行计算的框架Fork/Join,可以解决我们系统中大数据计算的性能问题.Fork/Join采用的是分治法,Fork是将一个大任务拆分成若干个子任务,子任务分别去计算,而J ...

  6. Appium 三种wait方法(appium 学习之改造轮子)

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  7. 《A Convolutional Neural Network Cascade for Face Detection》

    文章链接:   http://pan.baidu.com/s/1bQBJMQ  密码:4772 作者在这里提出了基于神经网络的Cascade方法,Cascade最早可追溯到Haar Feature提取 ...

  8. 修改一个CGRect的值

    // 1. 用一个临时变量保存返回值. CGRect temp = self.view.frame; // 2. 给这个变量赋值. temp.size.width = kWIDTH; // 3. 修改 ...

  9. MAC 常用命令

    杀死占用某个端口的进程 命令 lsof -i tcp:port  port换成端口号可以查看端口是被哪个程序占用   -->    kill -9 pid   杀死进程

  10. 总结:在MyEclipse中部署一个wap应用时需要配置的环境变量,我的JDK是安装在C盘,mysql安装在D盘,Tomcat解压在E盘,所以路径一定要看清楚哦,!