使用telnet发送HTTP请求报文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用telnet发送HTTP请求报文相关的知识,希望对你有一定的参考价值。

参考技术A 我们可以使用telnet给特定的Web服务器发送HTTP请求报文,得到服务器的HTTP相应报文。

比如,打开终端输入下面命令:

telnet www.baidu.com 80 //Web服务器ip或域名、端口
GET https://www.baidu.com/ HTTP/1.1
//请求行:方法字段、URL字段、HTTP版本字段
Host: www.baidu.com //首部行

在输入最后一个首部行之后连续按两次回车,这就打开一个到主机 www.baidu.com 的80端口的TCP连接,并发送一个HTTP请求报文。你将会看到一个携带包括百度主页的html基本文件的相应报文(HTML文件,即对象被封装在相应报文的实体体中)。如果只是想看一下HTTP协议的报文行,而不是获取对象本身的话,可以用HEAD代替GET。

浅析HTTP协议的请求报文和响应报文

1.HTTP协议与报文简介

 HTTPhypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则

而客户端与服务端通信时传输的内容我们称之为报文。

 HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送客户端的报文格式。

客户端发送给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文

  2.报文格式

   报文格式: 报文首部  空行  报文主体

   2.1 请求报文 :请求首部 
  get请求

  GET /Hello/index.jsp HTTP/1.1              请求首行:请求方式 请求资源【url】 请求协议/版本号
  Accept: */*                                              请求头部:*/*表示客户端可以接受的文档类型,*/*表示的是可以接受任意类型
  Accept-Language: zh-CN                       Accept-Language:表示的是当前浏览器所在的地区,zh-CN表示是客户端用的语言简体中文,en-US表示的是美式英语!
 User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center  PC 6.0; .NET4.0C; .NET4.0E)
 Accept-Encoding: gzip,deflate     浏览器向服务器发送请求的时候,会告诉服务器端浏览器可以接受的压缩格式!
 Host: localhost:8080                   是目标主机的ip地址和端口号!
 Connection: Keep-Alive              表示的是浏览器和服务器的通信连接:Keep-Alive表示会话保持!默认会话连接时间是3000ms!
 Cookie: JSESSIONID=C55836CDA892D9124C03CF8FE8311B15   是位于浏览器端的,和服务器通信使用!
  get请求没有空行和请求体!
post请求(大体与get相同)
POST /Hello/target.html HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/Hello/
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 14
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=774DA38C1B78AE288610D77621590345

2.2 响应报文: 响应首部 空行 响应主体

响应报文是由响应首部[响应首行和响应头部]、空行、响应体

HTTP/1.1 200 OK                                                      响应首行:通信协议/版本号 响应状态码 
Server: Apache-Coyote/1.1                                      服务器:apache
Content-Type: text/html;charset=UTF-8                  响应体编码类型:Content-Type
Content-Length: 274                                              响应体长度:Content-Length
Date: Tue, 07 Apr 2015 10:08:26 GMT                 响应时间:Date

响应状态码:
200:表示的是响应成功
302:表示的是重定向
404:请求的url错误!
500:服务器端的错误!







 

 

以上是关于使用telnet发送HTTP请求报文的主要内容,如果未能解决你的问题,请参考以下文章

http报文结构

HTTP 报文结构

浅析HTTP协议的请求报文和响应报文

http代理报文通过发包实现代理请求网页内容

soapUI 怎么发送json 报文请求?

请求响应报文