Http请求和响应

1、什么是Http协议

HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

2、Http协议的组成

Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请   求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

3、Http请求

编写一个form.html的表单界面,如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8     <form action="#" method="post">
 9         <input type="text" name="username"><br/>
10         <input type="password" name="password"><br/>
11         <input type="submit" name="提交"><br/>
12     </form>
13 </body>
14 </html>

点击提交按钮。抓包如下:

1)请求行

  请求方式:POST、GET

  请求的资源:/DemoEE/form.html

  协议版本:HTTP/1.1

HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。

HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。

2)请求头

  请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value


常见请求头


描述 (红色掌握,其他了解)


Referer


浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用于:防盗链


If-Modified-Since


浏览器通知服务器,本地缓存的最后变更时间。与另一个响应头组合控制浏览器页面的缓存。


Cookie


与会话有关技术,用于存放浏览器缓存的cookie信息。


User-Agent


浏览器通知服务器,客户端浏览器与操作系统相关信息


Connection


保持连接状态。Keep-Alive 连接中,close 已关闭


Host


请求的服务器主机名


Content-Length


请求体的长度


Content-Type


如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码


Accept:


浏览器可支持的MIME类型。文件类型的一种描述方式。

MIME格式:大类型/小类型[;参数]

例如:

text/html ,html文件

text/css,css文件

text/javascript,js文件

image/*,所有图片文件


Accept-Encoding


浏览器通知服务器,浏览器支持的数据压缩格式。如:GZIP压缩


Accept-Language


浏览器通知服务器,浏览器支持的语言。各国语言(国际化i18n)

3)请求体

  当请求方式是post的时,请求体会有请求的参数,格式如下:

  username=zhangsan&password=2333

  如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面

  http://localhost:8080...?username=zhangsan&password=2333

4、Http响应

1)响应行

  Http协议

  状态码

  状态信息:状态信息是根据状态码变化而变化的

2)响应头

  响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端


常见请求头


描述


Location


指定响应的路径,需要与状态码302配合使用,完成跳转。


Content-Type


响应正文的类型(MIME类型)

取值:text/html;charset=UTF-8


Content-Disposition


通过浏览器以下载方式解析正文

取值:attachment;filename=xx.zip


Set-Cookie


与会话相关技术。服务器向浏览器写入cookie


Content-Encoding


服务器使用的压缩格式

取值:gzip


Content-length


响应正文的长度


Refresh


定时刷新,格式:秒数;url=路径。url可省略,默认值为当前页。

取值:3;url=www.itcast.cn    //三秒刷新页面到www.itcast.cn


Server


指的是服务器名称,默认值:Apache-Coyote/1.1。可以通过conf/server.xml配置进行修改。<Connector
port="8080" ... server="itcast"/>


Last-Modified


服务器通知浏览器,文件的最后修改时间。与If-Modified-Since一起使用。

3)响应体

  响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染显示页面内容。

时间: 2024-11-05 20:41:58

Http请求和响应的相关文章

http请求与响应全过程

HTTP 无状态性 HTTP 协议是无状态的(stateless).也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端.HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求. HTTP 持久连接       HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销.因为同一个页面可能存在多个对象,所以非持久连接可

请求和响应。

之前先复习: 1.Servlet: Servlet接口. MyServlet extends HttpServlet. (HttpServlet继承自GenericServlet,GenericServlet实现了Servlet接口.) 2.java web的 servlet技术: Java程序和页面之间的桥梁.Servlet对象放在tomcat web服务器,web容器,servlet容器. 3.调用.当请求出现时,tomcat根据映射路径找到对应的类,创建对应的对象,调用父类写好的servi

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

一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议漫谈,http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html 3.逖靖寒,浅析HTTP协议,http://www.cnblogs.com/gpcuster/archive/2009/05/25/1488749.htm

HTTP/NSURLConnection(请求、响应)、http响应状态码大全

一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻视频:优酷.百度视频.搜狐视频.爱奇艺视频音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐LBS:百度地

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

Postman工具——请求与响应

两个内容: Request 请求和 Response 响应,下面就开始了. 一.Request 请求 Request 请求,我们只介绍常用的四种:GET.POST.PUT.DELETE,其他类型的就不展开介绍了.另外,我们今天测试的项目是基于 RESTful API 规范的,现在已经成为主流了,有兴趣的同学可以研究下. 1.1 GET 请求 对于 GET 请求来说,我们一般是用来查询数据,返回一个数组或对象.RESTful API 的一个好处就是我们根据不同级别的访问路径,会自动判别返回的数据类

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

我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把日志记录操作放在一个ActionFilter即可. [AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public class ApiActionAttribute

对Servlet请求或响应进行JMockit测试

对Servlet请求及响应进行mock方法, 通过getMockInstance方法对servlet进行打桩,对servlet提供的方法进行mock,替代真正的servlet请求或响应. 参考链接: https://stackoverflow.com/questions/31689729/servlet-junit-test-using-jmockit 代码如下: @RunWith(JMockit.class) public class ImageServletTest3 { @Test pub

浅谈HTTP请求与响应

HTTP协议用于客户端和服务器之间的通信,请求访问的一段是客户端,提供资源响应的一段是服务器端. HTTP通信是采用请求应答的方式来进行的,客户端发出请求,服务器响应.如果没有客户端的请求,服务器端是不进行任何响应的.HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列4个步骤: (1)建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP /IP完成,这是在网络层进行的.HTTP是比TCP更高层次的应用